2012-01-03 2 views
1

Это мой файл .htaccessApache RewriteRule: плохой флаг разделители

# Redirect every request to index.php 
RewriteBase/
RewriteEngine on 
RewriteRule .* to public/index.php 

И я получаю следующее сообщение об ошибке в error.log:

RewriteRule: плохой флаг разделители

Что случилось с файлом .htaccess? (Я только начал писать модуль mod_rewrite).

Редактировать: файл .htaccess находится в корне сайта.

ответ

1

Удалить "to":

RewriteRule .* public/index.php 

Documentation

+4

Спасибо, я полный идиот :( – siannone

+0

Еще одна вещь, когда я использую 'RewriteRule. * Public/index.php' выглядит, если веб-сервер застрял, и я не получаю никакого ответа, но если я использую' RewriteRule. * Test.html' i ' m правильно перенаправлен на test.html – siannone

+0

Nevermind, просто решил эту проблему. – siannone

1

AFAIK, вам не нужно "чтобы" в правила перезаписи. просто удалите это слово, и все должно быть в порядке.

RewriteRule .* public/index.php 

docs Входит в это подробно.

+0

Я полный идиот/facepalm – siannone

-1

Другие из них прав, но не забывайте, что это после ? в URL, это QSA флаг, как это:

# Redirect every request to index.php 
RewriteBase/
RewriteEngine on 
RewriteRule .* public/index.php [QSA] 
+0

Извините, что Olivier, но это неточно. Флаг [QSA] («Query String Append») необходим, если вы хотите * добавить * q uery string params к первому запросу. Если вы хотите просто * сохранить * строку запроса исходного запроса, это поведение по умолчанию, и вам не нужен QSA. [И, если вы хотите вообще снять его, просто поставьте «?» в конце целевого URL RewriteRule.] HTH Chris – cweekly

+0

Из моих собственных тестов (посмотрите мою историю на ответы о правилах перезаписи), что я могу сказать: если вы когда-нибудь добавляете что-то в запрос, то есть здесь: ' public/index.php? aa = bb', то вы потеряете то, что было в исходном запросе. Таким образом, вы можете быть правы, но то, о чем я говорю, это хороший принцип, чтобы не забывать, потому что если вы этого не сделаете, вы столкнетесь с проблемой в тот или иной день. Это то, что я имел в виду, когда сказал: «Не забудьте сохранить то, что после?» (может быть, я не проявил себя должным образом, и если да, извините) –

+0

Итак, да, все ответы здесь хороши, но никто не упоминает, что я мог бы назвать хорошим принципом. И это не добавляет лишних накладных расходов, если вы правы, и если поведение по умолчанию заключается в сохранении строки запроса исходного запроса - если оно не изменено. –

Смежные вопросы