htaccess重定向索引,没有文件扩展名

时间:2014-10-21 23:39:04

标签: php apache .htaccess http-status-code-301

我刚碰到这个。我正在运行一个wordpress网站,我想将此www.dentistcostamesadds.com/index重定向到www.dentistcostamesadds.com。我的代码不起作用。

# Permanent URL redirects
RewriteEngine On
RewriteBase /
Redirect 301 /index http://www.dentistcostamesadds.com

如下所示,只有 / index 没有扩展程序不起作用。为什么呢?

Redirect 301 /index.php http://www.dentistcostamesadds.com WORKS
Redirect 301 /index.html http://www.dentistcostamesadds.com WORKS
Redirect 301 /index.aspx http://www.dentistcostamesadds.com WORKS
Redirect 301 /home http://www.dentistcostamesadds.com WORKS
Redirect 301 /home.html http://www.dentistcostamesadds.com WORKS
Redirect 301 /index http://www.dentistcostamesadds.com DOESN'T WORK

2 个答案:

答案 0 :(得分:1)

这是因为Redirect指令自动将URI的其余部分附加到目标。所以如果你只有:

Redirect 301 /abc http://domain.com/xyz

这意味着/abc1234的请求将被重定向到http://domain.com/xyz1234/abc/foo/bar会被重定向到http://domain.com/xyz/foo/bar。因此,如果您想重定向所有这些内容,可以尝试使用正则表达式:

RedirectMatch 301 ^(index|home)(\.php|\.html|\.aspx)?$ http://www.dentistcostamesadds.com

答案 1 :(得分:0)

以下将解决这个问题:

RewriteEngine On
RewriteRule ^index?$                               /

这表示将请求重定向到www。(...)/ index到www。(...)

www。(...)是域名。