nginx 支持 .htaccess/重写规则?与阿帕奇的区别?

ano*_*ard 16 nginx migration web-server apache-2.2

我使用 Apache http 服务器已经有一段时间了,最​​后与其他动态内容机器一起转向静态内容服务器。

我想知道,nginx 是否支持“.htaccess”文件,以及诸如 mod_rewrite 之类的东西?

由于我非常习惯语法,我想知道(语法)差异是什么,以及从 Apache 配置迁移到 nginx 的学习曲线如何。

rkt*_*hkr 14

nginx 重写语法比 mod_rewrite 中的对应语法要清晰得多:

mod_rewrite 规则:

 RewriteRule ^[a-z0-9_-]*-f([0-9]+)/?(p([0-9]+)\.html)?$ /viewforum.php?f=$1&start=$3 [QSA,L,NC]
Run Code Online (Sandbox Code Playgroud)

在 nginx 中变成:

rewrite ^/[a-z0-9_-]*-f([0-9]+)/?(p([0-9]+)\.html)?$ /viewforum.php?f=$1&start=$3 last;
Run Code Online (Sandbox Code Playgroud)

但没有 .htaccess 支持...

编辑:另一个示例如何在 nginx 中支持http://example.com/~username/ urls:

location ~ /~([a-zA-Z0-9]*)/(.*) {
    root /home/;
    autoindex on;
    index index.html;
    rewrite ^/~([a-zA-Z0-9]*)/(.*)$ /$1/www/$2 break;
}
Run Code Online (Sandbox Code Playgroud)