使用.htaccess重定向含日语参数的URL无效,请求技术协助
带日语参数URL的301重定向解决方案
你之前用的Redirect 301指令只能匹配URL的路径部分,没法识别和处理查询参数里的日语内容,所以达不到你要的重定向效果。
要解决这个问题,得用Apache的mod_rewrite模块针对查询参数做匹配,具体操作如下:
- 确认你的Apache服务器已经启用
mod_rewrite模块 - 在网站根目录的
.htaccess文件中添加以下规则:
RewriteEngine On # 匹配查询参数包含日语字符(平假名、片假名等)的URL RewriteCond %{QUERY_STRING} [\x{3040}-\x{30FF}\x{FF65}-\x{FF9F}] [NC] # 重定向到对应主URL,清空查询参数 RewriteRule ^(.*)$ /$1? [R=301,L]
规则说明:
RewriteEngine On:开启URL重写引擎RewriteCond:设置匹配条件,这里专门匹配查询字符串中包含日语字符的请求RewriteRule:把匹配到的路径重定向到去掉查询参数的版本,?用来清空原有查询字符串,R=301表示永久重定向,L表示该规则是最后执行的规则
额外提示:
- 测试阶段可以先用
R=302临时重定向,确认逻辑没问题后再改成R=301 - 如果日语参数是固定的特定值(比如你示例里的
?japanese),可以把RewriteCond改成更精准的匹配:
RewriteCond %{QUERY_STRING} ^japanese$ [NC]
内容的提问来源于stack exchange,提问作者Chhaya Parikh
相关产品推荐
相关产品推荐

