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
On 11.06.2009, at 13:22, Dmitri Sintsov wrote:
Здравствуйте, 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?
rewrite_log on;
Версия nginx 0.6.35
из "эстетических" соображений при
формировании url не используется
urlencode(),
но вроде бы это не должно влиять на
правила, тем более что ? я пытаюсь
заменить на %3F самостоятельно.
С уважением,
Дмитрий
|