这不是重复的问题。
首先,我有 3 个“相同”的 Drupal 6.20 CMS 桌面类型网站,使用 MySQL 数据库 5.7.23 和 PHP 5.6.40。
所有这 3 个站点都已经存在多年,并且 never 以前遇到过这个问题。
最近 3 个网站中的 2 个,(站点 1)http://sam308.com/ 和(站点 2)http://closefocusresearch.com/ 内置搜索遇到了完全相同的问题。
问题是:
例如,在 http://closefocusresearch.com/ 上,当我使用网站上的内置搜索表单时,使用不带引号的“body armor”这样的双词词,或使用任何多个词包含空格的搜索词,搜索结果显示消息 ERROR 403 - FORBIDDEN。但是下面的搜索结果url没有变
本页的搜索结果网址为:
http://closefocusresearch.com/search/node/body%20armor
在这个问题开始发生之前,上面的搜索结果 url 会显示正确的搜索结果。
现在,url 中的 %20 导致 ERROR 403 - FORBIDDEN 结果,如下图所示。
由于防弹衣这两个词之间的空格已替换为 %20,我现在遇到导致 403 错误的问题。仅当搜索词包含空格时才会发生这种情况,否则工作正常。
作为旁注,如果手动将 %20 替换为 %2520,将 url 中的 % 替换为 %25,如下所示,那么我会得到正确的搜索结果。
http://closefocusresearch.com/search/node/body%2520armor
如果您想自己测试,请使用主页上的站点搜索框。
过去 3 天,我试图在 Internet 和 drupal.org 上查找此行为的原因,但找不到解决方案。所有 3 个网站上的所有文件权限都是相同的。
我也尝试从我的托管公司获得支持,但他们无法提供任何帮助。
我也尝试修改 .htaccess 文件来纠正这种行为,但没有成功。我不是编写 RewriteRule 规则的专家。
会不会是最近的 Apache 更新错误导致了这个问题? 注意:我无法通过共享主机计划访问 Apache 系统。
关于如何解决这个问题有什么想法吗?
谢谢你的时间。
我按照此处的说明进行操作,看起来问题已解决: AH10411 错误:在 apache mod_rewrite 中管理空间和 %20
从以下位置更改您的 .htaccess:
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
到: RewriteRule ^(.*)$ index.php?q=$1 [B,L,QSA]