由于大多数开源项目都包含与 Apache 一起使用的 mod_rewrite 规则,因此我需要能够将它们转换为与 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>
如果您试图保留重写规则,nginX 似乎是要走的路。
这可以这样做:
但似乎 nginX 的强大之处在于拥有不那么复杂、更小的规则,所以这可能是一个更好的替代方法:
只是为了给下一个访问者一个完整的答案,lighttpd 确实支持重写规则,尽管它们不直接支持等效的 -f 和 -d 标记来首先验证是否存在同名文件和目录。
目前有三种解决方案:
把你的静态文件放在一个固定的目录下,比如medias,并为这个目录做一个例外,比如:
也许看看“切诺基”网络服务器。它是 Apache 的轻量级、快速替代品,并且具有一些非常不错的特性。
不管哪个“轻型”网络服务器更快(而且它们都比 apache 快得多)。我会为 Cherokee 这么说,管理网络界面非常易于使用。很明显,因为是基于web的,所以配置和apache有很大的不同。我会称之为令人愉快的不同,而不是令人讨厌的不同。
但归根结底......,只有阿帕奇是阿帕奇。Apache 的优势在于其 AAA 级的灵活性。