将正则表达式Apace mod_rewrite RewriteCond转换为Nginx

时间:2015-03-06 12:14:57

标签: apache mod-rewrite nginx

这是我的Apache .htaccess:

<IfModule mod_rewrite.c>
    RewriteEngine On
    # rewrite /{bookVerb}/{qs} to /book/{qs}
    RewriteCond $1 ^((book|reservar|reserver|buchen|riservare)($|\/.*)) [NC]
    RewriteRule ^(.*)$  /book/%2 [L]
</IfModule>

如何在nginx服务器上使用它?

1 个答案:

答案 0 :(得分:0)

尝试在server { }

中添加以下规则
if ($request_uri ~* ^/en/(?:book|reservar|reserver|buchen|riservare)(?:/(.*))?$) {
    rewrite ^ /book/$1 break;
}

我假设您要捕获并传递/reservar/..之后的内容等。在原始规则中,%2实际上是捕获{bookVerb},而不是{{1} }。