php - url.rewrite-once 与 Kohana 和 urls

标签 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

最佳答案

为什么不直接使用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/

相关文章:

php - PHP IF 中的比较顺序

php - WordPress wp.media 上传图片

php - 如何合并 3 个表中的数据

php - 什么是 HMVC 模式?

php - 在 Windows 上的 XAMPP 上为 PHP 安装 couchbase 客户端 SDK

Java 通过带问号的换行符正则表达式拆分字符串

Javascript 字符串计数与 rtrim

javascript - 解析日志文本

php - Codeigniter 2 和 Kohana 3 教程?

php - 我如何判断在 Kohana 3 中是否使用 AJAX 发出了请求?