哪个 Web 服务器具有更好的重写语法,与 Apache 的语法非常相似?

kov*_*ert 2 nginx web-server lighttpd

由于大多数开源项目都包含 mod_rewrite 规则以与 Apache 一起使用,因此我需要能够将它们转换为与 lighttpd 或 nginx 一起使用。哪个 Web 服务器允许我将规则完全转换为来自 Apache 的规则?如果两者都可以准确转换,哪一个具有更好的语法和高级选项,可以更好地模仿 Apache?

例如,我将使用来自 Wordpress 的 .htaccess。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

Mik*_*ler 7

如果您试图保留重写规则,nginX 似乎是要走的路。

这可以像这样完成:

if (!-e $request_filename) {
  rewrite ^([_0-9a-zA-Z-]+)?(/.*) $2  break;
  rewrite ^([_0-9a-zA-Z-]+)?(/.*\.php)$ $2 last;
  rewrite ^ /index.php last;
}
Run Code Online (Sandbox Code Playgroud)

但似乎 nginX 的强大之处在于具有更简单、更小的规则,因此这可能是替代它的更好方法:

if (!-e $request_filename) {
  rewrite ^ /index.php last;
}
Run Code Online (Sandbox Code Playgroud)