ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
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 такой вариант убивает всю красоту напрочь.


Подскажите, как можно грамотно решить данные вопросы?


С уважением, Моженков Евгений



 




Copyright © Lexa Software, 1996-2009.