将重写规则apache转换为nginx

时间:2014-07-03 08:33:31

标签: apache .htaccess symfony nginx

我有一个php symfony项目,我将apache作为服务器删除,并出于性能原因使用nginx。 在我的virtualhost.conf中没有我有以下设置

<Directory "/usr/share/myvirtualhost/web">
    Require all granted
    Options -Indexes +FollowSymLinks
    AllowOverride None
    Allow from All
    <IfModule mod_rewrite.c>
        RewriteEngine On

        RewriteCond %{HTTP:X-DEVELOP-DOC-TEST} ^running$
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ app_doctest.php [QSA,L]

        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ app.php [QSA,L]
    </IfModule>
</Directory>

现在我不知道如何将其转换为正确的nginx重写规则,尤其是

部分
RewriteCond %{HTTP:X-DEVELOP-DOC-TEST} ^running$

我正在检查是否正在设置标头,以将请求转发到app_doctest.php

我怎样才能从这里得到进一步的发展?

1 个答案:

答案 0 :(得分:1)

所以这里有一些指向正确方向的链接。

从那开始:a full doc on how to convert things from apache in the right way

这意味着,例如,您不会使用重写,而是使用try_files

然后,对于特定的标题测试,您可以使用http_表单,X-DEVELOP-DOC-TEST标题应位于http_x_develop_doc_test变量中。避免使用if结构,而更喜欢map等。