我正在将 apache2 服务器迁移到 Lighttpd,但是在使用 Mod_Rewrite 时遇到了一些问题。
我有一个目录 /api/,我需要将其从重写规则中排除,如下所示:
url.rewrite-once = (
".*\?(.*)$" => "/index.php?$1",
".*\.(js|ico|gif|jpg|png|css)$" => "$0",
"" => "/index.php"
)
我尝试用
$HTTP["url"] !~ "^/api/" { }
但是这没有效果,只是排除了每个 URL 的重写。有谁知道有什么方法可以
a) 从重写中排除 /api/
b) 排除服务器上存在的每个实际目录进行重写
我曾见过可以执行后者的 Drupal Lua 脚本,但是我并不精通 Lua,也不知道如何为 Zend Framework 应用程序配置它。
整个配置:http://pastebin.com/ggjiTFLk
干杯
答案1
更改第一部分:
".*\?(.*)$" => "/index.php?$1",
到 "^/(?!api[/]).*\?(.*)$"
或者 "^/(?!api(?:$|/)).*\?(.*)$"