ПРОЕКТЫ 


  АРХИВ 


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]

Re: mediawiki rewrite rules



всё проще
http://www.mediawiki.org/wiki/Manual:Short_URL/wiki/Page_title_--_nginx_rewrite--root_access

Здравствуйте,
Nginx-ru

Предлагаемые правила rewrite для движка mediawiki


http://wiki.nginx.org/NginxMediaWiki


"страдают" тем, что в названиях статей, содержащих знак вопроса,
усекаются все символы после знака вопроса:


http://site.ru/Что
делать? Чернышевский


превращается в


http://site.ru/Что
делать?



Я пытаюсь разработать более корректные правила, но пока что не
получается, может найдете пару минут подскажите в чем ошибка?


Все статьи должны передаваться на /index.php?Title=

причем знак вопроса в названии статьи пытаюсь экранировать с помощью
 %3F

php скрипты разумеется не преобразовываются.


      location / {

          index index.php;

error_page 404 = @mediawiki;

      }

location @mediawiki {

          set $test "A";

if ($args ~* ^/.*?\?.*) {

set $test  "${test}Q";

          }

if ($args ~* ^/.*?\.php.*) {

set $test  "${test}P";

          }

          if ($test = A) {

rewrite ^/(.*)? /index.php?title=$1 last;

          }

if ($test = AQ) {

rewrite ^/([^?]*)(?:\?(.*))? /index.php?title=$1%3F$2
last;

          }

if ($test = AQP) {

rewrite ^/(.*)? /$1 last;

          }

      }

location ~* ^(.)+\.(php)$ {

proxy_pass                  http://........



proxy pass идет на apache, в нем rewrite не используется.


Нет ли у nginx rewrite debug log, по аналогии с apache?


Версия nginx 0.6.35


из "эстетических" соображений при формировании url не используется
urlencode(),

но вроде бы это не должно влиять на правила, тем более что ? я пытаюсь
заменить на %3F самостоятельно.


С уважением,

Дмитрий



 




Copyright © Lexa Software, 1996-2009.