日期:2014-05-17  浏览次数:20914 次

不带前缀www的域名转向到带www.域名的Apache 301转向配置样例
  最近一直有朋友问不带www的域名怎样跳转到带www的域名,又不影响搜索引擎优化的效果。其实很简单就做301重定向喽。
  但朋友又问怎么写啊,没找到相关的资料,哎!

得空就写一个吧

一般的域名启用后都会做2种解析服务到同一个ip上,带有www的默认二级域名和不带www的,其实这会引起一系列的反映:举个例子
www.yourdomain.com/
yourdomain.com/
www.yourdomain.com
yourdomain.com
www.yourdomain.com/index.php
yourdomain.com/index.php

如果加上一些参数,比如用于来源跟踪等还会有更多无穷无尽的地址。
www.yourdomain.com/?p=

所以搜索引擎鼓励发布者把URL标准化(归一化)。首先就是域名的归一化,原先我的设置为: www.yourdomain.com / yourdomain.com为别名。现在改为yourdomain.com 301转向到www.yourdomain.com
<VirtualHost *:80>
ServerName yourdomain.com
RewriteEngine on
RewriteRule ^(.*)$ http://www.yourdomain.com$1 [R=301,L]
</VirtualHost>

如果没有mod_rewrite也可以设置mod_alias:
RedirectMatch 301 ^(.*)$ http://www.yourdomain.com

在域名和目录的规划方面: 豆瓣和FlickR都是非常干净的(完全隐藏了程序文件名的后缀,而统一规划了目录路径),而且在RSS方面豆瓣比FlickR做的更彻底。当然Wikipedia更彻底,目录结构非常扁平,根本没有目录。从而避免了很多潜在的连接混淆,而相互的引用,也因此非常集中而少歧义。

参考文档:Apache和IIS的服务器301转向配置
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} !^newdomain\.com
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,L]