导航菜单
首页 >  » 正文

win主机/nginx用web.config/httpd.ini/nginx.conf实现301重定向

一, Windows虚拟主机用户的实现301重定向的方法:

 Windows server 2003 IIS6.0虚拟主机下301重定向代码

httpd.ini文件配置的代码如下,放置位置:网站根目录

[ISAPI_Rewrite]

 CacheClockRate 3600

 RepeatLimit 32

 RewriteCond Host: ^qiankoo\.com$

 RewriteRule (.*) http\://www\.qiankoo\.com$1 [I,R]

 下载地址:httpd.ini
注:记得把其中的域名换成你的域名。如果你的网站根目录中的这个文件已经存在(伪静态),可以将上面的代码直接加到里面

Windows server 2008 IIS7.5虚拟主机下的urlrewrtie规则

web.config文件代码如下,放置位置:网站根目录

<?xml version="1.0" encoding="UTF-8"?>
 <configuration>
 <system.webServer>
 <rewrite>
 <rules>
 <rule name="WWW Redirect" stopProcessing="true">
 <match url=".*" />
 <conditions>
 <add input="{HTTP_HOST}" pattern="^qiankoo.com$" />
 </conditions>
 <action type="Redirect" url="http://www.qiankoo.com/{R:0}" redirectType="Permanent" />
 </rule>
 </rules>
 </rewrite>
 </system.webServer>
 </configuration>

 下载地址:web.config

记得把其中的域名换成你的域名。

注:经实验,此方法只能重定向首页,如需整站301跳转,需要在iis7中新建一个站点不带www,随便指定一个目录,设置这个站点301跳转到带www 的即可,这点网上很多地方都没有说

详解教程:IIS7.5全站301跳转,内页+带参数url,这才是真正的全站跳转

 

二,多对域名重定向怎么写规则?

1、对于httpd.ini 配置文件中需要另写一行重定向代码。

如下,将域名“qiankoo.com”、“www.vuln.cn”都重定向到“www.qiankoo.com

[ISAPI_Rewrite]

 CacheClockRate 3600

 RepeatLimit 32

 RewriteCond Host: ^qiankoo\.com$

 RewriteRule (.*) http\://www\.qiankoo\.com$1 [I,R]

 RewriteCond Host: ^seo.qiankoo\.com$
 RewriteRule (.*) http\://www\.qiankoo\.com$1 [I,R]
 2. web.config配置文件中只需在被重定向的域名后面加一个竖线”|”跟上需要被重定向的增加域名即可。

如下

<?xml version="1.0" encoding="UTF-8"?>
 <configuration>
 <system.webServer>
 <rewrite>
 <rules>
 <rule name="WWW Redirect" stopProcessing="true">
 <match url=".*" />
 <conditions>
 <add input="{HTTP_HOST}" pattern="^qiankoo.com|www.vuln.cn$" />
 </conditions>
 <action type="Redirect" url="http://www.qiankoo.com/{R:0}" redirectType="Permanent" />
 </rule>
 </rules>
 </rewrite>
 </system.webServer>
 </configuration> 

注:因为即使是做了301跳转之后,搜索引擎对你另外一个带www的域名还是会有一个考察期的,这个考察与新站稍有不同。权重一般不会丢失。所以做过301跳转后会有一个作用期,不会马上生效!


三,IIS7.5全站301跳转,内页+带参数url,这才是真正的全站跳转

背景

看上去你的301跳转成功了,但是真的是301吗?真的是全站301吗?你找个内页带参数的url试试就知道。大部分人做的301只是首页301,或者内页部分301,真正的问题在于你可能还没发现这个问题。

解决方法

如果你是独立vps云服务器,那么想要做的全站301,不可能靠web.config文件来实现的,web.config文件在实践中只能首页301跳转。

案例

我现在需要将老域名:seo.qiankoo.com,与新域名不带www的secafe.cn域名全部跳转到:http://www.vuln.cn

这是个很经典的案例,大多数人要做301大多数都是这两种。

  • 首先,我新建一个站点,仅绑定域名:www.vuln.cn,指定站点目录为你的网站程序目录,如图:

  • 然后,随便找个地方(最好还是站点同目录)建立一个空文件夹;新建一个站点,绑定需要跳转的域名(可同时绑定多个),指定网站目录为刚才创建的空白文件夹,如图:

  • 然后针对这个需要跳转的站点进行操作,如案例中为secafe_301,进入http重定向

将301目标网站“www.vuln.cn”填入,下面两个选项不要勾,后期熟悉了功能可自行选择。

 

添加一个空白规则,名字随意。 

 

这里模式填写.*表示从根目录开始全部通配,达到完全对应,如果指定其他目录可在前面加上

这里添加条件,还是.*

下面填写跳转到的目录路径,这里填写的是目标站根目录通配。

 

最后别忘了点击应用:

  • 至此,完工,用站长工具查看下是否301关系对应:

两个域名完美统一301对应跳转。

四,nginx服务器设置301重定向

修改nginx配置文件(/usr/local/nginx/conf/nginx.conf)

server
    {
        listen 80 default_server;
        #listen [::]:80 default_server ipv6only=on;
        server_name www.qcool.cn qcool.cn;
        if ($host != 'www.qcool.cn'){
        rewrite ^/(.*)$ http://www.qcool.cn/$1 permanent;
        }
        index index.html index.htm index.php;
        root  /home/wwwroot/default;

在配置文件中添加描红部分即可。

修改完后记得重启nginx,完工。

0.201048s