URL中有%20报错 forbidden 403禁止错误

场景:

网站:www.abc.com/s/搜索key 名字,能正常访问(名字和key 中间有空格)
转义后的URL:www.abc.com/s/搜索key%20名字。

后来莫名其妙的就不能访问了,报Forbidden 错误,程序一直没动过,本地好用,线上访问不了了,那么一定是线上服务器更新了配置,也就是apache更新补丁或者升版本了。

话不多说上解决方案:

需要修改一下htaccess 里面的规则即可。

将原来的规则-> RewriteRule ^(.*)$ index.php?/$1 [L]

修改为->  RewriteRule ^(.*)$ index.php?/$1 [B,L,QSA]

齐活。

起因:

  1. 如果URL 路径中存在某些无效字符(例如、、 ),Apache 将提前触发 403 。在某些方面,这取决于操作系统。如果文件名中不允许使用该字符(根据底层操作系统),则当请求映射到文件系统时会触发 403。*:"

  2. 这发生在处理之前。 .htaccess因此,如果您定义了ErrorDocument 延迟.htaccess则不会调用您的自定义错误文档。但是,如果您在服务器配置(或 VirtualHost)中定义了ErrorDocument 早期内容,那么应该调用它。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值