目前我在 simple-hosts.conf 中有这样的设置:
url.rewrite-once = (
".*.(js|ico|gif|jpg|png|css|php|htm)(?.*)?$" => "$0",
"/slapi" => "/slapi/index.php"
)
效果很好,但当我在查询字符串中有一个点时,上面的方法会失败:
?url= http://google.com
最佳答案
为什么不直接使用server.error-handler-404 = "/path/to/index.php"
?
但是对于正则表达式本身,其中有许多未转义的字符。第二个 .
我假设您的意思是文字 .
。如果是这样,您需要使用反斜杠 \.
对其进行转义。同样的情况也适用于?字符(我再次假设您的意思是字面意思?)。所以正则表达式应该是:
".*\\.(js|ico|gif|jpg|png|css|php|htm)(\\?.*)?$"
另外,您可以通过删除查询模式周围的问号来进一步改进它(我更喜欢这种语法,我发现它更容易阅读):
".*\\.(js|ico|gif|jpg|png|css|php|htm)(\\?.*|)$"
关于php - url.rewrite-once 与 Kohana 和 urls,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2951966/