如何隐藏主页URL中的index,使网址显示为www.example.com?
解决主页URL隐藏/index的问题
你需要在现有规则中添加重定向/index到根目录的规则,同时调整根目录的处理逻辑(从外部重定向改成内部转发),这样就能让主页始终显示为www.example.com。
修改后的完整规则如下:
RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / # 1. 把 /index 或 /index.html 重定向到根目录(301永久重定向) RewriteRule ^index(\.html)?$ / [NC,L,R=301] # 2. 根目录请求内部转发到 index.html(不改变地址栏) RewriteRule ^$ /index.html [L] # 现有其他规则保持不变 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] RewriteCond %{THE_REQUEST} /([^.]+)\.html [NC] RewriteRule ^ /%1 [NC,L,R] RewriteCond %{REQUEST_FILENAME}.html -f RewriteRule ^ %{REQUEST_URI}.html [NC,L]
关键修改说明:
- 新增的第一条规则:匹配
/index或/index.html的请求,通过301重定向到根目录,强制地址栏显示为www.example.com - 把原有的外部重定向规则改成内部转发(去掉
R=301),这样访问根目录时服务器内部加载index.html,但地址栏不会显示后缀 - 重定向规则要放在最前面,确保优先处理带/index的请求
内容的提问来源于stack exchange,提问作者Shijie Lee
相关产品推荐
相关产品推荐

