将一个非www主页重定向到www版本,而不重定向任何其他页面

时间:2012-07-12 23:46:22

标签: redirect

我需要将只有一个页面(主页)的非www版本重定向到www。

我想留下网站的其余部分。由于需要保留特定页面非www。

所以,如果我尝试重写

规则

/index.html http://www.example.com/

我收到无限重定向类型错误。

2 个答案:

答案 0 :(得分:0)

可能有一种方法可以达到你想要的效果,虽然我必须说这有一点“气味”。听起来你正试图治疗一个症状,而不是解决问题(诚然,这可能是你无法控制的)。您的组织是否可能需要设置域指针,以便www.example.com和examples.com完全相同?

答案 1 :(得分:0)

所以你想要

  • http://example.com/转到http://www.example.com/

但你想要

  • http://example.com/index.html
  • http://example.com/otherstuff
  • http://example.com/subdir/path/file.php

保持不变?

对于Apache:

    RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
    RewriteRule ^/$ http://www.example.com/ [R=301,L]

如果您希望网站上的任何非www子域名重定向到www版本:

    RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
    RewriteRule ^/$ http://www.%{HTTP_HOST}/ [R=301,L]

如果您想重定向除特定页面之外的所有内容:

    RewriteCond %{REQUEST_URI} !^/subdir/path/file.php$ 
    RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]