Что означает это правило mod_rewrite?

836
cfischer

По какой-то причине это правило вызывает хаос во всех последующих правилах (ни одна из тем не работает). Что это значит точно?

RewriteRule . /index.php [L]

1
It doesn't make sense, at least to me as I'm a little rusty with rewrite rules... I do know the [L] just tells it to stop processing after running that rule. If I had to take a guess though it's almost like someone was attempting to rewrite all requests to the base directory of host to index.php... Mike Keller 12 лет назад 0
Эта строка сама по себе не имеет смысла (скорее всего, у вас будет 500 ошибок сервера, если это будет только одна строка перезаписи). Перед этой строкой должна быть одна или несколько строк `RewriteCond`. LazyOne 12 лет назад 0

2 ответа на вопрос

1
music2myear

Очевидно, это правило должно скрывать часть index.php видимого URL. Когда ваш рабочий URL-адрес является http://www.somesite.com/index.php, это правило заставит браузер отображать http://www.somesite.com/ .

Ну, это, вероятно, действует наоборот. Когда сервер получает запрос http://www.somesite.com/, он будет обслуживать http://www.somesite.com/index.php, просто не показывая этот последний бит.

Есть и другие способы сделать это, которые могут быть более эффективными и с меньшей вероятностью вызвать такие проблемы, как вы испытываете. Я сделал поиск в Google по запросу " mod rewrite RewriteRule. /Index.php ", чтобы получить эту информацию, и на большинстве страниц, похоже, есть несколько полезных советов относительно более эффективных способов сделать это.

0
tking

Я верю, что он перенаправляет его в root. Таким образом, когда вы заходите на www.example.com, он не показывает www.example.com/index.php. Полезно для целей SEO.

Это настройка Wordpress?

T его хорошая статья над на StackOverflow, что объясняет это.