1 域名重定向

  在我们网站建设中,时常会遇到需要网页重定向的情况:像网站调整,如改变网页目录结构,网页被移到一个新地址,再或者,网页扩展名改变,如因应用需要把.php改成.Html或.shtml,在这种情况下,如果不做重定向,则用户收藏夹或搜索引擎数据库中旧地址只能让访问客户得到一个404页面错误信息,访问流量白白丧失;再如某些注册了多个域名的网站,也需要通过重定向让访问这些域名的用户自动跳转到主站点等。

 

2 301重定向

  301代表永久性转移(Permanently Moved),301重定向是网页更改地址后对搜索引擎友好的最好方法,只要不是暂时搬移的情况,都建议使用301来做转址。

 

3 Apache下的301域名重定向配置

 

3. 1 apache配置mod_rewrite模块

  找到apache的配置文件:http.conf,找到以下几行:

  #LoadModule rewrite_module modules/mod_rewrite.so

  去掉前面的#

 

3. 2 在http.conf文件的最后加入代码,示例代码如下:

  #打开重写功能

  RewriteEngine on

  #日志等级,调试模式下建议开等级2

  RewriteLogLevel 0    

  #日志文件地址                       

  RewriteLog logs/rewrite.log

  #下面的三行是将域名为“www.dongfeng-citroen.com”301重定向到域名www.dongfeng-citroen.com.cn

  #定义如果获取到规则为www.dongfeng--citroen.com的域名

  rewritecond %{HTTP_HOST} ^www\.dongfeng-citroen\.com$

  #把用户输入完整的地址(GET方式的参数除外)作为参数传给下一个规则,[C]是Chain串联下一个规则的意思

  rewriterule ^(.+) %{HTTP_HOST}$1 [C]

  #关键的一句,将上面描述的域名301重定向到www.dongfeng-citroen.com.cn

  rewriterule ^www\.dongfeng-citroen\.com(.*) http://www.dongfeng-citroen.com.cn$1 [L,R=301]

 

  规则末尾相关参数解释:

  mod_rewrite 规则修正符

  1) R 强制外部重定向 。

  2) F 禁用URL,返回403HTTP状态码。 

  3) G 强制URL为GONE,返回410HTTP状态码。 

  4) P 强制使用代理转发。 

  5) L 表明当前规则是最后一条规则,停止分析以后规则的重写。 

  6) N 重新从第一条规则开始运行重写过程。 

  7) C 与下一条规则关联。 

  如果规则匹配则正常处理,以下修正符无效。

  8) T=MIME-type(force MIME type) 强制MIME类型。

  9) NS  只用于不是内部子请求。 

  10) NC 不区分大小写。 

  11) QSA 追加请求字符串。

  12) NE 不在输出转义特殊字符   \%3d$1  等价于 =$1 。