You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

WordPress站点搜索功能故障:.htaccess自动添加代码导致异常

WordPress搜索功能突发故障?看看你的.htaccess是不是被加了这段代码!

太懂这种功能突然罢工的糟心了!你排查的方向完全对——自动出现在.htaccess里的那段强制HTTPS重写代码,就是导致搜索失效的元凶。

先给大家明确一下那段自动添加的代码:

<IfModule mod_rewrite.c> 
RewriteCond %{HTTPS} !=on 
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] 
</IfModule>

为什么这段代码会搞挂搜索?

问题出在重写规则的写法上:RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] 这个规则在跳转时,没有完整保留请求的查询参数(比如搜索时的?s=你要搜的关键词)。当用户提交搜索请求,HTTP被强制跳转到HTTPS的过程中,搜索关键词的参数直接丢失了,自然就搜不出内容了。

解决方案&后续预防

  • 临时恢复:既然移除这段代码后搜索正常,那就先删掉它,确保功能可用。
  • 正确实现HTTPS强制跳转(不影响搜索):如果你确实需要全站HTTPS,别用那段有问题的代码,改用下面这个兼容WordPress的规则,它会完整保留所有请求参数:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

或者更简单的:直接在WordPress后台「设置→常规」里,把「WordPress地址(URL)」和「站点地址(URL)」都改成HTTPS开头的地址,WordPress会自动处理跳转逻辑,不需要手动写.htaccess规则。

  • 找到自动添加代码的根源:大概率是某个SSL安全类插件自动写入的,去插件设置里调整跳转规则,或者换用更兼容的插件,避免以后再出现自动篡改.htaccess的情况。
  • 收尾检查:修改完.htaccess后记得保存,刷新站点缓存,多测试几次搜索功能,确保一切正常。

内容的提问来源于stack exchange,提问作者tester

火山引擎 最新活动