2015-12-10 3 views
1

Я пытаюсь сделать мои ссылки более дружелюбными, прямо сейчас Theyre нравитсяПроблем с переписыванием я не могу понять,

http://localhost/messages/?s=whatever 
to 
http://localhost/messages/whatever 

Но только RewriteRule, который приходит первые работы, так что сейчас только сообщения работает все другие дайте мне Internal Server Error. Но если я ставлю RewriteRule ^users/([^/]*)$ /users/index.php?s=$1 [L,QSA,NC] выше правила перезаписи сообщений, то будет работать только /users/view.

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^messages/([^/]*)$ /messages/index.php?s=$1 [L,QSA,NC] 
RewriteRule ^users/([^/]*)$ /users/index.php?s=$1 [L,QSA,NC] 
RewriteRule ^notes/([^/]*)$ /notes/index.php?s=$1 [L,QSA,NC] 
RewriteRule ^posts/([^/]*)$ /posts/index.php?s=$1 [L,QSA,NC] 
+0

журнал ошибок говорит ...? – covener

ответ

1

Проблема заключается в том, что ваши rewriteRules переписывают URL-адрес обратно в себя. forexample Образец регулярного выражения ^пользователи/([^ /] *) $ соответствует /users/index.php и переписывает его в /user/index.php, поэтому вы получаете 500 ISE.

Вы должны исключить точку ([^. /] *) В своем шаблоне, чтобы целевой путь не мог соответствовать шаблону.

RewriteEngine On 
RewriteRule ^messages/([^/.]*)$ /messages/index.php?s=$1 [L,QSA,NC] 
RewriteRule ^users/([^/.]*)$ /users/index.php?s=$1 [L,QSA,NC] 
RewriteRule ^notes/([^./]*)$ /notes/index.php?s=$1 [L,QSA,NC] 
RewriteRule ^posts/([^/.]*)$ /posts/index.php?s=$1 [L,QSA,NC] 
+1

Мой герой я не думал, что кто-нибудь ответит! – Jorm

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