2012-03-14 128 views
3

编辑:为了更好地解释我想要的。301 htaccess只有首页重定向

我们想将我们的首页http://www.example.com转移到子页面http://www.example.com/sub-page

所以为了保持我们的SEO排名,我们需要编写一个301永久移动。我们希望在浏览器中显示子页面的URL。 这应该显示http://www.example.com/sub-page/

所以结果将是,如果您尝试输入http://www.example.com,您的网址将被重写为http://www.example.com/sub-page/ 301重定向。

但是每隔一页不应该重定向! 例如http://www.example.com/contact/应该仍然是一样的。

它也应该照顾根域的每一个变化。 带和不带尾随斜杠(example.com/VS example.com) 带和不带WWW(www.example.com VS example.com

回答

2
1. Enable mod_rewrite and .htaccess. 
2. Create and deploy your new home page as `/sub-page` 
3. Then put this code in your .htaccess file under DOCUMENT_ROOT: 
Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

# reqest to example.com/ will be forwarded to example.com/sub-page 
RewriteRule ^$ sub-page [L,R=301] 
+0

感谢您的输入。我对你的解决方案有点困惑。试图访问'example.com/sub-page /'的用户是否会被重定向到根域?我为什么要这个?我想要相反。第二部分从根到子页面的转发:这会显示URL为“example.com/sub-page”吗?它会显示301永久移动? – user1268530 2012-03-14 10:36:59

+0

根据第二条规则,浏览器中的URL将保持为'example.com',但内容将来自'example.com/sub-page'。现在关于对SEO敏感的观点就是不要从2个URI中提供完全相同的内容。现在,如果你没有第一条规则,那么'example.com /'和'example.com/sub-page'将提供你必须避免的相同内容。因此,我的第一条规则将外部重定向(将浏览器中的URL更改为)从example.com/sub-page到example.com /,因此无论浏览器的URL总是“example.com /”,搜索引擎都不会为此惩罚你。 – anubhava 2012-03-14 10:56:07

+0

还记得在规则#1中从'R'改为'R = 301',一旦你确定一切正常。 – anubhava 2012-03-14 11:06:03

1

.htacces

^/|/index.html|/index.php$  /sub-page 

只要你喜欢添加的字体页面。 ^表示行头。
$表示行结束。

+0

我们不使用index.html或index.php文件。但是,^ //子页面会将http://www.example.com和http://www.example.com/重定向到/子页面。并保留所有其他网址,因为它们是?例如。 http://www.example.com/abc根本不应该被重定向。 – user1268530 2012-03-14 09:22:28