url.rewrite-once与Kohana和urls

时间:2010-06-01 17:38:41

标签: php regex kohana lighttpd

目前我在simple-hosts.conf中有这个设置:


url.rewrite-once = (
    ".*.(js|ico|gif|jpg|png|css|php|htm)(?.*)?$" => "$0",
    "/slapi" => "/slapi/index.php"
)

效果很好,但是当我在查询字符串中有一个点时,上述操作失败了:

?URL = http://google.com

1 个答案:

答案 0 :(得分:3)

为什么不使用server.error-handler-404 = "/path/to/index.php"

但至于正则表达式本身,你有许多未转义的字符。第二个.我假设你的意思是文字.。如果是这样,您需要使用反斜杠\.来转义它。同样的是?字符(再次,我假设你的意思是字面意思?)。所以正则表达式应该是:

".*\\.(js|ico|gif|jpg|png|css|php|htm)(\\?.*)?$"

另外,你可以通过删除查询模式周围的问号来进一步改进它(我更喜欢这种语法,我觉得它更容易阅读):

".*\\.(js|ico|gif|jpg|png|css|php|htm)(\\?.*|)$"