2009-12-02 3 views
0

Я все еще довольно потерян с mod_rewrite как его невероятно новым для меня. Я пытаюсь создать несколько правил для улучшения URL-адресов. Однако, поиграв с ним на некоторое время, кажется, что он использует только первое правило. Например, если я перехожу к «/ frontpage/some-post-slug», он работает отлично, но если я перехожу к «/ page/some-page-slug», я получаю 500 Internal Server Error. Кто-нибудь знает, что может вызвать это?mod_rewrite не использует несколько правил

мой файл .htaccess находится в полном ниже:

<IfModule mod_rewrite.c> 

    Options +FollowSymLinks 

    RewriteEngine on 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 

    RewriteRule ^frontpage/([A-Za-z0-9-]+)*$ /frontpage/?slug=$1 [NE,L] 
    RewriteRule ^page/([A-Za-z0-9-]+)*$ /page/?slug=$1 [NE,L] 

</IfModule> 

Спасибо за любую помощь!

+0

Вы можете включить запись перезаписи с помощью 'RewriteLog/path/to/your/rewrite.log' и' RewriteLogLevel LEVEL', где LEVEL - 0-9, чтобы увидеть, что именно делает Apache. – Marko

ответ

1

Что произойдет, если вы удалите * перед $ -sign? Я никогда их не использую, и мои правила почти такие же, как у вас.

+0

hah. Наверное, я знаю достаточно о регулярных выражениях, чтобы получить меня. Это позаботилось об этом. удивительно. Кстати, я бы очень хотел настроить его так, чтобы второе правило было чем-то вроде RewriteRule ^/([A-Za-z0-9 -] +) * $/page /? Slug = $ 1 [NE, L] так что для того чтобы сказать, что страница контакта url не будет/page/contact он будет просто быть/контакт. Сначала я попытался сделать это, но они просто предположили, что mod_rewrite оказался в директории «/». Вы знаете, как я мог это сделать? – seventeen

+0

хорошо ... без звездочки ^^ – seventeen

+0

никогда не бывало, я понял. Спасибо за вашу помощь! – seventeen

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