我有一个.htaccess文件,我正在尝试转换,因此它可以在我的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/
块中?
非常感谢你能给我的任何帮助。
server {}
答案 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位置定义下。