我有一个问题。如何在 nginx 上使用我的 Htaccess 文件?
我曾经见过类似的事情:http://www.anilcetin.com/convert-apache-htaccess-to-nginx/
但我不知道这是否有效以及我应该把代码放在哪里?
有人能帮忙吗?那就太棒了!
问候 Slaxxer
答案1
NGINX 不支持任何类似 .htaccess 的东西(除非我弄错了),所以您需要将规则放入 NGINX 配置文件中,可能在虚拟主机内。
虚拟主机是针对域名的特定配置,在 NGINX 配置中它看起来像
server { # simple reverse-proxy
listen 80;
server_name domain2.com www.domain2.com;
access_log logs/domain2.access.log main;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
(取自 NGINX 示例配置)
因此,您需要将转换后的 .htaccess 规则放在 location{} 方括号内(相当于 Apache 的)。
举一个完整的例子,假设我的 .htaccess 文件中有一些 URL 重写
#Enable URL Rewriting
RewriteEngine on
#Rewrite some pages
RewriteRule ^page/([0-9a-zA-Z_-]+).html$ /pagehander.php?page=$1 [QSA]
通过转换器运行我得到
rewrite ^/page/([0-9a-zA-Z_-]+).html$ /pagehander.php?page=$1;
因此,我会将其放入我的 NGINX 服务器配置中,例如
server { # simple reverse-proxy
listen 80;
server_name domain2.com www.domain2.com;
access_log logs/domain2.access.log main;
location / {
rewrite ^/page/([0-9a-zA-Z_-]+).html$ /pagehander.php?page=$1;
proxy_pass http://127.0.0.1:8080;
}
}