将.htaccess转换为PHP脚本的Nginx配置的问题

时间:2012-02-13 16:37:38

标签: php .htaccess nginx

我有一个.htaccess文件,我正在尝试转换,因此它可以在我的Nginx服务器上运行。

我有两个主要问题:

1。我不知道如何转换一些行

2。我不知道在哪里放置Nginx配置代码

以下是我遇到转换问题的行:

 Options All -Indexes

 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d

 RewriteRule ^(.*)$ index.php?page_request=$1 [QSA,L]

我尝试了一些在线转换器,但它们似乎没有用。

另外,一旦我换了线,我在哪里放?我假设我需要将它们放在mysite.conf的{​​{1}}文件中,但在该文件中,我是否只将它们放在/etc/nginx/sites-available/块中?

非常感谢你能给我的任何帮助。

编辑:这是conf文件

server {}

1 个答案:

答案 0 :(得分:2)

<强>更新

进行一些nginx研究,遇到这个,给它一个镜头,看看它是否按预期工作:

location / {
    # other code below this line
    try_files $uri $uri/ /index.php?page_request=$uri;
}

基本上try_files是if语句,它首先尝试常规文件,如果找不到它,它会将它作为目录尝试,如果它找不到它将它发送到最后一个参数。


<强> OLD

您是否尝试过使用以下服务:http://www.anilcetin.com/convert-apache-htaccess-to-nginx/

输出:

#ignored: condition 0
#ignored: condition 1
if ($rule_0 = "2"){
rewrite /RewriteRule ^/(.*)$;
}

对于您提供的数据。

你把它们放在:

里面
server {

}

由于这不适用于特定的location,您只需将其放在默认内容之后。有行动的顺序,所以是的。如果您有多个位置类型位,它可以位于某个位置。对于nginx,我可能会把它放在.php位置定义下。