场景:
网站: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]
齐活。
起因:
-
如果URL 路径中存在某些无效字符(例如、、 ),Apache 将提前触发 403 。在某些方面,这取决于操作系统。如果文件名中不允许使用该字符(根据底层操作系统),则当请求映射到文件系统时会触发 403。
*
:
"
文章来源:https://www.toymoban.com/news/detail-616303.html -
这发生在处理之前。
.htaccess
因此,如果您定义了ErrorDocument
延迟,.htaccess
则不会调用您的自定义错误文档。但是,如果您在服务器配置(或 VirtualHost)中定义了ErrorDocument
早期内容,那么应该调用它。文章来源地址https://www.toymoban.com/news/detail-616303.html
到了这里,关于URL中有%20报错 forbidden 403禁止错误的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!