htaccess и mod_rewrite вызывают сбой apache с отсутствующим файлом - PullRequest
3 голосов
/ 29 января 2011

Для простого php-сайта я хочу иметь дружественные URL.Поэтому я хотел бы, чтобы мои URL выглядели так:

http://mysite.com/page/123

Что указывает на:

http://mysite.com/page.php?id=123

И это работает!Но если я укажу на файл, которого нет на сервере, Apache скачет, и мне придется заставить Apache выйти (сейчас разрабатывается локально с MAMP).

Вот мой файл .htaccess.Есть идеи?

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} -f  [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

RewriteRule ^([^/=]+)/?([^/]*)/?$ $1.php?id=$2 [N,QSA]

ErrorDocument 404 /404.php

1 Ответ

1 голос
/ 29 января 2011

Просто измените порядок ваших двух правил и используйте флаг L вместо N :

RewriteCond $1 !.*\.php$
RewriteRule ^([^/=]+)/?([^/]*)/?$ $1.php?id=$2 [L,QSA]

RewriteCond %{REQUEST_FILENAME} -f  [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...