mod_rewrite
Моженков Евгений
inbox at germes.ru
Tue Aug 7 15:08:45 MSD 2007
Здравствуйте!
Хочу переписать стандартный апачевский вариант:
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?$1 [L]
Чтобы mode_rewrite отрабатывал на nginx
Ставлю:
location / {
if (!-e $request_filename){
rewrite ^(.*)$ /index.php?$1 break;
}
....
}
Все ок, идет редирект на основной скрипт.
Потом выясняется, что если запросить файл domain/panel.php, то он его не видит.
Пришлсь переписать для частного случая конфиг на такой:
if (!-e $request_filename){
rewrite ^(?!\/panel\.php)(.*)$ /index.php?$1 break;
}
Но это не выход из положения. В вирутальном хосте могут быть и другие файлы исполняемые
Помимо этого есть проблемка с логами:
- при реврайте через апач, когда приходит реквест, например, /p1/index.html, в логах мы его и видим.
- при реврайте через nginx в логах мы видим такую запись: /index.php?/p1/index.html
Для awstat такой вариант убивает всю красоту напрочь.
Подскажите, как можно грамотно решить данные вопросы?
С уважением, Моженков Евгений
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20070807/f8959ddb/attachment.html>
More information about the nginx-ru
mailing list