使用 mod_rewrite 和 lighttpd 从重写中排除目录

使用 mod_rewrite 和 lighttpd 从重写中排除目录

我正在将 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(?:$|/)).*\?(.*)$"

相关内容