Нужна помощь в преобразовании правил переписывания Apache2 в nginx - PullRequest
5 голосов
/ 27 февраля 2012

Мне удалось преобразовать большинство из них, но я немного борюсь с этими двумя -

RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,QSA,L]

RewriteRule !^(media/(.+)|favicon.ico|robots.txt|sitemap.xml|sitemap-main.xml)$ index.php

Буду признателен за руку, если кто-то будет переписывать nginx ниндзя:)

1 Ответ

6 голосов
/ 27 февраля 2012

Это:

RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,QSA,L]

будет преобразовано в:

rewrite ^/(.+)/$ http://$http_host/$1 permanent;

, а это:

RewriteRule !^(media/(.+)|favicon.ico|robots.txt|sitemap.xml|sitemap-main.xml)$ index.php

будет преобразовано в:

rewrite /!^(media/(.+)|favicon.ico|robots.txt|sitemap.xml|sitemap-main.xml)$ /index.php;

Вы также можете использовать:

if ($rule_0 = ""){
    rewrite ^/(.+)/$ http://$http_host/$1 permanent;
}
if ($rule_0 = ""){
    rewrite /!^(media/(.+)|favicon.ico|robots.txt|sitemap.xml|sitemap-main.xml)$ /index.php;
}

Документация: http://wiki.nginx.org/HttpRewriteModule

От: http://www.anilcetin.com/convert-apache-htaccess-to-nginx/

...