Apache开启伪静态后接受不到URL问号后的参数,静态资源无法访问

来源:互联网 发布:妖姬 知乎 编辑:程序博客网 时间:2024/04/30 00:02

    基于Windows和Apache,使用 Yaf 框架(自带路由)开发时 Apache 开启了伪静态导致无法加载静态资源、接收不到参数,原因是问号后的参数被当着整串字符串了(有些日子了,应该是这个原因)无法解析参数,解决方法:

#启用重写后,避免静态资源访问出错RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_URI} !^/cssRewriteCond %{REQUEST_URI} !^/jsRewriteCond %{REQUEST_URI} !^/imagesRewriteCond %{REQUEST_URI} !^.*(\.css|\.js|\.gif|\.png|\.jpg|\.jpeg|\.xml)#解决重写后接不到问号后面的参数RewriteCond %{QUERY_STRING} ^(.*)$#RewriteRule ^(\w+)\-(\w+)\.html index.php?c=$1&a=$2%1 [L,QSA]#把URL中的index.php省略掉RewriteRule  ^/(.*)  /index.php?$1 [L,QSA]

在 Apache 的配置文件或对应的 httpd-vhosts.conf 里加入上面一段。

其中最主要的是 [QSA,L] 中 QSA(query string append),参见 Apache 文档中 mod_rewrite 模块

0 0