mediawiki rewrite rules

Pavel Khusainov alvelcom at rambler.ru
Thu Jun 11 18:43:06 MSD 2009


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





More information about the nginx-ru mailing list