我们需要301和伪静态时,会在网上搜索一下,会发现,一般是两种说法。
1、.htaccess方法。
2、ISAPI_Rewrite支持后的,httpd.ini的书写。
这里说明一下情况,.htaccess文件,一般是在Linux主机里面使用(也包括windows主机下的apache服务器)。使用方法相对简单。
ISAPI_Rewrite呢,则是针对windows主机(IIS)的一个重写插件。具体是设置,则是在httpd.ini文件里面书写。
另外提醒一点,.htaccess和httpd.ini文件均需要传至网站根目录生效。
1、下面说一下Linux主机下的301重定向,.htaccess的书写方法。
.httaccess文件代码:
复制代码
这是两个域名,如果在有多个域名在增加RewriteCond %{HTTP_HOST} ^yourname.com [NC,OR]
如果单单只把不带www的地址重定向到带www的地址,代码如下:
复制代码
这样就完成了http:// jbo-china.com,http://www. jbo-china.com,http:// zhongzijing.com重定向到http://www. zhongzijing.com
再说一下Linux主机下的伪静态,.htaccess的书写方法。
因为伪静态不是硬性的书写,而是针对不同的需求进行书写的,所以我这里就把之前对DZ论坛的伪静态的书写规则写出来,以供参考。
.httaccess文件代码:
复制代码
2、下面说一下windows主机下的301重定向,httpd.ini的书写
这里需要声明的是,因为ISAPI_Rewrite的版本有多个,所以书写方式也各有不同。
另外说一下,现在国内很多主机都是1.3版本的,它可用于url 重写,但并不适合用来实现真正的301重定向功能。使用前,请先咨询空间商ISAPI_Rewrite的版本。
1. 将不带www的顶级域名301重定向到带www的域名
# ISAPI_Rewrite 1.3 版本(此处为302状态码。)
复制代码
# ISAPI_Rewrite 2.x 版本
复制代码
# ISAPI_Rewrite 3.0 版本
复制代码
2. 不同域名之间的301转向
# ISAPI_Rewrite 2.x 版本
复制代码
# ISAPI_Rewrite 3.0 版本
复制代码
3. 将页面301重定向到另外一个页面
# ISAPI_Rewrite 2.x 版本
复制代码
# ISAPI_Rewrite 3.0 版本
复制代码
下面再说一下window主机下的伪静态,下面我列举一下,之前写的一个ASP的伪静态,以供参考。
httpd.ini 内容示范:
1、.htaccess方法。
2、ISAPI_Rewrite支持后的,httpd.ini的书写。
这里说明一下情况,.htaccess文件,一般是在Linux主机里面使用(也包括windows主机下的apache服务器)。使用方法相对简单。
ISAPI_Rewrite呢,则是针对windows主机(IIS)的一个重写插件。具体是设置,则是在httpd.ini文件里面书写。
另外提醒一点,.htaccess和httpd.ini文件均需要传至网站根目录生效。
1、下面说一下Linux主机下的301重定向,.htaccess的书写方法。
.httaccess文件代码:
- RewriteEngine On
- RewriteCond %{HTTP_HOST} ^jbo-china.com [NC,OR]
- RewriteCond %{HTTP_HOST} ^www. jbo-china.com [NC,OR]
- RewriteCond %{HTTP_HOST} ^zhongzijing.com [NC]
- RewriteRule ^(.*)$ http://www. zhongzijing.com /$1 [L,R=301]
如果单单只把不带www的地址重定向到带www的地址,代码如下:
- RewriteCond %{HTTP_HOST} ^ zhongzijing.com [NC]
- RewriteRule ^(.*)$ http://www. zhongzijing.com /$1 [L,R=301]
再说一下Linux主机下的伪静态,.htaccess的书写方法。
因为伪静态不是硬性的书写,而是针对不同的需求进行书写的,所以我这里就把之前对DZ论坛的伪静态的书写规则写出来,以供参考。
.httaccess文件代码:
- RewriteEngine On
- # 修改以下语句中的 /discuz 为你的论坛目录地址,如果程序放在根目录中,请将 /discuz 修改为 /
- RewriteBase /
- # Rewrite 系统规则请勿修改
- RewriteRule ^archiver/((fid|tid)-[0-9]+\.html)$ archiver/index.php?$1
- RewriteRule ^forum-([0-9]+)-([0-9]+)\.html$ forumdisplay.php?fid=$1&page=$2
- RewriteRule^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ viewthread.php?tid=$1&extra=page\%3D$3&page=$2
- RewriteRule ^space-(username|uid)-(.+)\.html$ space.php?$1=$2
- RewriteRule ^tag-(.+)\.html$ tag.php?name=$1
这里需要声明的是,因为ISAPI_Rewrite的版本有多个,所以书写方式也各有不同。
另外说一下,现在国内很多主机都是1.3版本的,它可用于url 重写,但并不适合用来实现真正的301重定向功能。使用前,请先咨询空间商ISAPI_Rewrite的版本。
1. 将不带www的顶级域名301重定向到带www的域名
# ISAPI_Rewrite 1.3 版本(此处为302状态码。)
- [ISAPI_Rewrite]
- # 3600 = 1 hour
- CacheClockRate 3600
- RepeatLimit 32
- RewriteCond Host: ^zhongzijing\.com$
- RewriteRule (.*) http\://www\.zhongzijing\.com$1 [I,R]
- [ISAPI_Rewrite]
- # 3600 = 1 hour
- CacheClockRate 3600
- RepeatLimit 32
- RewriteCond Host: ^zhongzijing.com$
- RewriteRule (.*) http://www. zhongzijing.com$1 [I,RP]
- [ISAPI_Rewrite]
- # 3600 = 1 hour
- CacheClockRate 3600
- RepeatLimit 32
- RewriteCond %{HTTP:Host} ^zhongzijing.com$
- RewriteRule (.*) http://www.zhongzijing.com$1 [NC,R=301]
# ISAPI_Rewrite 2.x 版本
- [ISAPI_Rewrite]
- # 3600 = 1 hour
- CacheClockRate 3600
- RepeatLimit 32
- RewriteCond %{HTTP:Host} ^isapirewrite.com$
- RewriteRule (.*) http://www.zhongzijing.com$1 [NC,R=301]
- [ISAPI_Rewrite]
- # 3600 = 1 hour
- CacheClockRate 3600
- RepeatLimit 32
- RewriteCond %{HTTP:Host} ^www.isapirewrite.com$
- RewriteRule (.*) http://www.zhongzijing.com$1 [NC,R=301]
# ISAPI_Rewrite 2.x 版本
- [ISAPI_Rewrite]
- # 3600 = 1 hour
- CacheClockRate 3600
- RepeatLimit 32
- RewriteRule ^/oldpage.html$ http://www.zhongzijing.com/eyes/171.html [I,O,RP,L]
- [ISAPI_Rewrite]
- # 3600 = 1 hour
- CacheClockRate 3600
- RepeatLimit 32
- RewriteRule ^/oldpage.html$ http://www.zhongzijing.com/eyes/171.html [NC,L,R=301,O]
httpd.ini 内容示范:
- [ISAPI_Rewrite]
- # 3600 = 1 hour
- CacheClockRate 3600
- RepeatLimit 32
- #简体中文设置
- RewriteRule /index\.html /index.asp
- RewriteRule /Login\.html /Login.asp
- RewriteRule /Reg\.html /Reg.asp
- RewriteRule /Getpwd\.html /getpwd.asp
- RewriteRule /Notice\.html /work.asp
- RewriteRule /Prclass\.html /Prclass.asp
- RewriteRule /Doclass\.html /Doclass.asp
- RewriteRule /Neclass\.html /Neclass.asp
- RewriteRule /About\.html /About.asp
- RewriteRule /bbs\.html /bbs_index.asp
- RewriteRule /About(\d+)\.html /About\.asp\?ID=$1 [N,I]
- RewriteRule /news_content(\d+)\.html /worki\.asp\?ID=$1 [N,I]
- RewriteRule /Products(\d+)\.html /Products\.asp\?ID=$1 [N,I]
- RewriteRule /Prclass(\d+)\.html /Prclass.asp\?ID=$1 [N,I]
- RewriteRule /Prclass.html\?page=(\d+) /Prclass.asp\?page=$1 [N,I]
- RewriteRule /down(\d+)\.html /down.asp\?ID=$1 [N,I]
- RewriteRule /Doclass(\d+)\.html /Doclass.asp\?ID=$1 [N,I]
- RewriteRule /Doclass.html\?page=(\d+) /Doclass.asp\?page=$1 [N,I]
- RewriteRule /News(\d+)\.html /news.asp\?ID=$1 [N,I]
- RewriteRule /Neclass(\d+)\.html /Neclass.asp\?ID=$1 [N,I]
- RewriteRule /Neclass_page(\d+)\.html /Neclass.asp\?page=$1 [N,I]
- RewriteRule /info(\d+)\.html /inform.asp\?ID=$1 [N,I]