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

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

#启用重写后,避免静态资源访问出错
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_URI} !^/css
	RewriteCond %{REQUEST_URI} !^/js
	RewriteCond %{REQUEST_URI} !^/images
	RewriteCond %{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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值