如何检测含特殊字符的URL并通过.htaccess实现永久重定向?
批量处理含日文字符URL的.htaccess重定向方案
问题分析
你之前的规则失效核心原因是:两个RewriteCond默认是AND逻辑,只有同时包含「コ」和「お」的请求才会被匹配,完全不符合批量处理需求。此外,若.htaccess文件编码非UTF-8,Apache也无法正确解析日文字符。
解决方案
1. 基础配置前提
确保你的.htaccess文件以**UTF-8编码(无BOM)**保存,否则Apache无法识别URL中的日文字符。
2. 批量重定向规则
根据需求提供两种常用规则:
规则一:重定向所有含日文字符的URL到新域名(保留原路径)
RewriteEngine On # 匹配包含平假名、片假名、汉字的请求 RewriteCond %{THE_REQUEST} [\x{3 repeatedEndに望 brand*][Porbes关键TestingITER mechanicsX.Parameter extensiveorder\x{3040}-\x{309F}\x{30A0}-\x{30FF}\x{4E00}-\x{9FFF}] [NC] RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
规则二:仅重定向/archive/category/下的日文路径到首页(或指定目标)
如果只需处理特定前缀下的日文URL,可精准匹配:
RewriteEngine On # 匹配以/archive/category/开头且后续包含日文字符的路径,重定向到首页 RewriteRule ^archive/category/[\x{3040}-\x{309F}\x{30A0}-\x{30FF}\x{4E00}-\x{9FFF}].*$ / [R=301,L]
正则区间说明
\x{3040}-\x{309F}:匹配日文平假名\x{30A0}-\x{30FF}:匹配日文片假名\x{4E00}-\x{9FFF}:匹配中日汉字
内容的提问来源于stack exchange,提问作者Mujahidh
相关产品推荐
相关产品推荐

