2015-12-10 5 views
0

Я пытаюсь переписатьПочему это правило перезаписи дает мне эту ошибку?

http://localhost/messages/index.php?s=compose 

к

http://localhost/messages/compose 

, но это дает мне Internal Server Error

RewriteEngine On 
RewriteRule ^messages/([^/]*)$ /messages/index.php?s=$1 [L] 

Я использую интернет-сайт, где вы можете создать правила, так что должно работа, на сайте я могу сделать правило переписать его на http://localhost/compose.html, который работает и не дает мне никакой ошибки, но переписывание для http://localhost/messages/compose дайте мне ROR.

Mod переписывают двигатель на

Это что-то делать с тем, что сообщения является папка/каталог?

+0

Просмотрите журнал ошибок Apache для получения более подробной информации о том, что произошло. Но, скорее всего, это цикл переадресации, в котором 'index.php' снова совпадает с тем же правилом и перезаписывает себя. Добавьте 'RewriteCond% {REQUEST_FILENAME}! -f' перед' RewriteRule'. –

+0

Вы были правы, что RewriteCond исправил это. спасибо – Jorm

+0

Возможный дубликат [mod \ _rewrite петель даже с флагом L] (http://stackoverflow.com/questions/2127131/mod-rewrite-loops-even-with-l-flag) –

ответ

0

Исключить точку в шаблоне.

RewriteEngine On 
RewriteRule ^messages/([^/.]*)$ /messages/index.php?s=$1 [L] 
Смежные вопросы