Здравствуйте,
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 самостоятельно.
С уважением,
Дмитрий