.htaccess for /index.html = /

时间:2014-11-03 03:23:25

标签: regex apache .htaccess mod-rewrite redirect

我希望Google,Twitter和Google+能够对待

http://example.com http://example.com/http://example.com/index.html作为同一个网址。

Redirect 301 http://example.com http://example.com/ works
Redirect 301 http://example.com/index.html http://example.com/ does nothing (two different urls are still seen)
Redirect 301 /index.html / results in a redirect loop

我非常感谢能够给我一个明确的重定向写作方式的人。

1 个答案:

答案 0 :(得分:1)

您可以在DOCUMENT_ROOT/.htaccess文件中使用此代码:

DirectoryIndex index.html
RewriteEngine On

RewriteCond %{THE_REQUEST} /index\.html [NC]
RewriteRule ^(.*?)index\.html$ /$1 [L,R=302,NC,NE]

另请注意,http://example.com/http://example.com是网络服务器和浏览器的相同网址。浏览器通常在向Web服务器发送请求之前删除尾部斜杠,从而使http://example.com/转到http://example.com