Nginx 上的 Htaccess

Nginx 上的 Htaccess

我有一个问题。如何在 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;
    }
  }

相关内容