如何通过.htaccess实现无参数index.php永久重定向至网站根目录?
解决方案
修改你的.htaccess规则,添加查询字符串为空的条件判断,只在无参数时执行重定向,有参数时跳过规则:
RewriteEngine On # 仅当访问index.php且无查询字符串时,重定向到根目录 RewriteCond %{THE_REQUEST} ^GET\ /index\.php\ HTTP/ RewriteCond %{QUERY_STRING} ^$ RewriteRule ^index\.php$ / [R=301,L] # 保留原有的其他Rewrite规则(如果有的话)
规则说明
RewriteCond %{THE_REQUEST} ^GET\ /index\.php\ HTTP/:匹配直接访问index.php的请求,避免匹配内部重写生成的请求RewriteCond %{QUERY_STRING} ^$:确保当前请求没有查询字符串参数,只有满足这个条件才触发重定向RewriteRule ^index\.php$ / [R=301,L]:将无参数的index.php请求永久重定向到网站根目录,L标记终止后续规则执行
修改后效果:
- 访问
mysite.com/index.php→ 自动重定向到mysite.com - 访问
mysite.com/index.php?foo=bar等带参数的地址 → 保持原地址不变,正常处理查询参数
内容的提问来源于stack exchange,提问作者Stack Overflow
相关产品推荐
相关产品推荐

