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 。
|
所有评论仅代表网友意见