如何通过.htaccess将含字母数字的URL重定向至首页?
混合字符URL重定向至首页的.htaccess修复方案
当前你的.htaccess规则仅处理纯字母(含连字符)或纯数字的路径,访问abc123、a2b2c这类同时带字母和数字的URL时,既不匹配现有规则,又因ErrorDocument 404 mysite配置错误,导致页面报错。以下是修复方案:
修改后的完整.htaccess代码
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / # HTTP强制跳转HTTPS RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] # 纯字母(含连字符)路径跳转至name.php RewriteRule ^([a-z-]+)$ /name.php?n=$1 [NC,L] # 纯数字路径跳转至age.php RewriteRule ^([0-9]+)$ /age.php?e=$1 [NC,L] # 同时含字母和数字的路径重定向到首页 RewriteRule ^(?=.*[a-z])(?=.*[0-9])[a-z0-9-]+$ / [R=301,L,NC] # 404页面指向首页 ErrorDocument 404 / </IfModule>
关键修改说明
- 给HTTPS跳转规则添加
[R=301,L]:标记为永久重定向,且执行后停止后续规则,避免冲突 - 新增混合字符匹配规则:用正则断言
(?=.*[a-z])(?=.*[0-9])确保路径同时包含字母和数字,直接重定向到根目录(首页) - 修正404配置:将
ErrorDocument 404 mysite改为ErrorDocument 404 /,确保所有未匹配的异常请求都能跳转到首页 - 每条规则加
L标记:保证匹配到当前规则后不再执行后续规则,逻辑更清晰
内容的提问来源于stack exchange,提问作者Manh
相关产品推荐
相关产品推荐

