mediawiki rewrite rules

Dmitri Sintsov sdv at uniyar.ac.ru
Thu Jun 11 13:22:19 MSD 2009


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

С уважением,
Дмитрий


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20090611/720aa9ac/attachment.html>


More information about the nginx-ru mailing list