Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
mod_rewrite
Здравствуйте!
Хочу переписать стандартный апачевский вариант:
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 такой вариант убивает всю красоту напрочь.
Подскажите, как можно грамотно решить данные вопросы?
С уважением, Моженков Евгений
|