301跳转 linux
2017-10-11 23:57:45 FengHongSeXiaoXiang 阅读数 275

修改 default 文件

sudo vi /etc/nginx/sites-available/default

server {} 中增加如下代码

location /www-vote4twix-mars-com-twix-pick-a-side-sweepstakes.html {
    rewrite ^(.*)$ /www-vote4twix-mars-com-twix-brand-pick-a-side-game-sweepstakes.html permanent;
}

重启 nginx 服务器

先查看 nginx 服务器路径 ubuntu@:~$ ps aux | grep nginx

/usr/sbin/nginx -s  reload 
2015-04-30 14:28:27 hanshileiai 阅读数 1449
1. 修改 default 文件

ubuntu@:~$ sudo vi /etc/nginx/sites-available/default

2. server {} 中增加如下代码

location /www-vote4twix-mars-com-twix-pick-a-side-sweepstakes.html {
        rewrite ^(.*)$ /www-vote4twix-mars-com-twix-brand-pick-a-side-game-sweepstakes.html permanent;
    }


3. 重启 nginx 服务器

先查看 nginx 服务器路径 ubuntu@:~$ ps aux | grep nginx

4. # /usr/sbin/nginx -s  reload 
2014-06-03 10:37:58 keke0307 阅读数 6172
Linux虚拟主机设置301跳转的方法:在本地新建一个文本文件,最好用的专业的编辑器软件如EditPlus 将代码粘入
 
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.abc.com$ [NC]
RewriteRule ^(.*)$ http://www.abc.com/$1 [R=301,L]
</IfModule>
说明:上述规则是将站点所以访问域名都重定向到www.abc.com(规则中的域名请修改为自己的域名),
如果仅想将绑定在站点上某个域名(如:www.123.com)重定向到www.abc.com,规则如下:
 
RewriteCond %{HTTP_HOST} ^www.123.com$ [NC]
RewriteRule ^(.*)$ http://www.abc.com/$1 [R=301,L]
 
如果有多种需求,如abc.com跳转到www.abc.com 456.com跳转到www.456.com,规则如下:
 
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^abc.com$ [NC]
RewriteRule ^(.*)$ http://www.abc.com/$1 [R=301,L]
 
RewriteCond %{HTTP_HOST} ^456.com$ [NC]
RewriteRule ^(.*)$ http://www.456.com/$1 [R=301,L]
</IfModule>
根据自己的需要进行添加修改,然后上传到服务器wwwroot目录,改名为.htaccess即可
2014-10-23 11:52:19 super_sjh 阅读数 18

301重定向主要是为了将域名A跳转到域名B,更多情况下是将不带www的域名跳转到带www的域名,那么301重定向应该怎么做呢,本文详细的介绍301重定向的做法,下面分为linux主机、windows主机以及vps主机三种情况讲述(都以将本站域名yedward.net跳转到www.yedward.net这个为例子):

(一)linux主机

对于linux虚拟主机Apache服务器,需要支持.htaccess这个文件。先去确定主机是否支持.htaccess这个文件(可以询问主机商),如果支持的话,首先将两个域名都解析到这个服务器,然后在.htaccess中添加如下规则:

RewriteCond %{http_host} ^yedward.net [NC]

RewriteRule ^(.*)$ http://www.yedward.net/$1 [R=301,L]

如果你的网站根目录中已经存在了.htaccess文件,那么你可以直接修改该文件,然后将这条规则添加进去,如果你的网站根目录中不存在.htaccess文件,你可以先自己创建个htaccess.txt这样的空文件,然后添加如下规则,建成后将htaccess.txt文件上传到网站根目录,然后将htaccess.txt名修改为.htaccess,规则为:

RewriteEngine on

RewriteCond %{http_host} ^yedward.net [NC]

RewriteRule ^(.*)$ http://www.yedward.net/$1 [R=301,L]

(二)windows主机

windows主机的IIS服务器,首先需要安装ISAP_Rewrite这个组件,一样的去询问下主机商是否支持这个组件,如果支持的话,将两个域名都解析到该IP,然后对于windows主机我们需要建的是httpd.ini文件而不是.htaccess文件,这个地方需要注意一下,然后在httpd.ini文件中添加如下规则:

RewriteCond Host: ^yedward\.net$

RewriteRule (.*) http\://www\.yedward\.net$1 [I,RP]

RewriteCond Host: ^seo\.yedward\.net$

RewriteRule (.*) http\://www\.yedward\.net$1 [I,RP]

上面的规则表示的是将yedward.net这个域名301跳转到www.yedward.net这个域名,同时也将seo.yedward.net这个域名跳转到www.yedward.net这个域名。如果你的网站根目录下存在httpd.ini文件,你可以直接将以上规则加入进去,如果网站根目录下不存在该文件,你可以先新建个httpd.txt空文件,然后添加如下规则,保存文件用FTP上传到网站根目录后,将httpd.txt名修改为httpd.ini即可,规则如下:

[ISAPI_Rewrite]

# 3600 = 1 hour

CacheClockRate 3600

RepeatLimit 32

RewriteCond Host: ^yedward\.net$

RewriteRule (.*) http\://www\.yedward\.net$1 [I,RP]

RewriteCond Host: ^seo\.yedward\.net$

RewriteRule (.*) http\://www\.yedward\.net$1 [I,RP]

(三)vps主机

对于vps主机,你可以直接操控管理后台,下面我附上图片跟大家演示:

第一步:进入“控制面板”,然后在里面可以找到“管理工具”,然后看到如上图所示的界面,由于我这个是windows xp系统,只是用于演示用的,真正的windows主机不会使用windows xp系统的,所以在界面上看起来可能有点差别,但是不影响操作。

第二步,打开“Internet信息服务”,然后进入“网站”,会看的上图所示的结果,如果你的网站是处于运行状态的,你会在“默认网站”后面看到“运行”的字样,而我这里是“停止”,但是这个不影响。

第三步,右键点击在第二步看到的“默认网站(停止)”,然后在出现的对话框中选择“属性”,然后进入如上图所示的界面,这个时候选择“主目录”。

第四步,选择“主目录”中的“重定向到URL”,在输入框中输入要跳转到的目标地址,并勾选下面的“资源的永久重定向”,最后确认即可,这样就完成了vps主机的301重定向。

(四)我的主机不支持以上301跳转怎么办?

对于不支持以上301跳转的主机,那就不要做301了,也没有关系,你可以通过其他方法达到相同的效果,比如做好网址规范化、网站使用绝对化的地址等,这样就可以让搜索引擎明确知道哪一个是你的目标URL。

文章来源:http://www.yedward.net

2018-11-24 14:09:00 weixin_33805992 阅读数 14
13936612-4713e95be6c17475
如何实现多个二级域名301重定向跳转

宝塔Linux面板中,有着自带的301重定向功能(市面上很多面板都有这个功能),然而这是实现绑定域名(主域)301跳转的,如果你要将主域下的好几个二级域名301重定向,就无法直接进行301了,这个时候,就需要使用"配置文件"这个功能了,使用步骤如下:

步骤一

  • 选择主域 > 设置 > 配置文件


    13936612-7a2bea7cf0e3756f

步骤二

  • 修改代码,我们主域以“xxx.com”为例,要给二级域名“a.xxx.com”和“b.xxx.com”做301分别跳转到“网址1.com”和“网址2.com”,即
    a.xxx.com 跳到 网址1.com
    b.xxx.com 跳到 网址2.com

配置文件里的代码如下:

server
{
    listen 80;
    server_name xxx.com www.xxx.com;
    index index.html index.php index.htm default.php default.htm default.html;
    root /www/wwwroot/xxx;
    
    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    #301-START
        if ($host ~ '^xxx.com'){
            return 301 http://www.xxx.com$request_uri;
        }
    #301-END
    #SSL-END
    
    #ERROR-PAGE-START  错误页配置,可以注释、删除或修改
    error_page 404 /404.html;
    error_page 502 /502.html;
    #ERROR-PAGE-END
    
    #PHP-INFO-START  PHP引用配置,可以注释或修改
    include enable-php-54.conf;
    #PHP-INFO-END
    
    #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
    include /www/server/panel/vhost/rewrite/xxx.com.conf;
    #REWRITE-END
    
    #禁止访问的文件或目录
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }
    
    #一键申请SSL证书验证目录相关设置
    location ~ \.well-known{
        allow all;
    }
    
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
        error_log off;
        access_log off;
    }
    
    location ~ .*\.(js|css)?$
    {
        expires      12h;
        error_log off;
        access_log off; 
    }
    access_log  /www/wwwlogs/xxx.com.log;
    error_log  /www/wwwlogs/xxx.com.error.log;
}


#BINDING-a.xxx.com-START
server
{
    listen 80;
    server_name a.xxx.com;
    index index.php index.html index.htm default.php default.htm default.html;
    root /www/wwwroot/xxx/a;
    
    #301-START
        if ($host ~ '^a.xxx.com'){
            return 301 http://www.网址1.com$request_uri;
        }
    #301-END
    
    include enable-php-54.conf;
    include /www/server/panel/vhost/rewrite/xxx.com.conf;
    #禁止访问的文件或目录
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }
    
    #一键申请SSL证书验证目录相关设置
    location ~ \.well-known{
        allow all;
    }
    
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
        error_log off;
        access_log off; 
    }
    location ~ .*\.(js|css)?$
    {
        expires      12h;
        error_log off;
        access_log off; 
    }
    access_log /www/wwwlogs/xxx.com.log;
    error_log  /www/wwwlogs/xxx.com.error.log;
}
#BINDING-a.xxx.com-END

#BINDING-b.xxx.com-START
server
{
    listen 80;
    server_name b.xxx.com;
    index index.php index.html index.htm default.php default.htm default.html;
    root /www/wwwroot/xxx/b;
    
    #301-START
        if ($host ~ '^b.xxx.com'){
            return 301 http://www.网址2.com$request_uri;
        }
    #301-END
    
    include enable-php-54.conf;
    include /www/server/panel/vhost/rewrite/xxx.com.conf;
    #禁止访问的文件或目录
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }
    
    #一键申请SSL证书验证目录相关设置
    location ~ \.well-known{
        allow all;
    }
    
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
        error_log off;
        access_log off; 
    }
    location ~ .*\.(js|css)?$
    {
        expires      12h;
        error_log off;
        access_log off; 
    }
    access_log /www/wwwlogs/xxx.com.log;
    error_log  /www/wwwlogs/xxx.com.error.log;
}
#BINDING-b.xxx.com-END

认真观察,其实不难发现,主要发挥作用的是下面这段代码,因为我们为主域做301的时候,配置文件就会生成这串代码,同理,把这串代码复制到二级域名的配置代码中,修改参数即可。

#301-START
        if ($host ~ '^a.xxx.com'){
            return 301 http://www.网址1.com$request_uri;
        }
#301-END

保存后,记得清理下本地缓存,再输入域名,看看有没有成功实现301重定向。

使用以上方式进行301的前提是你的二级域名用的是【子目录绑定】功能来实现二级域名,而不是直接将二级域名作为一个主域建立网站的!

转载于:https://www.jianshu.com/p/257be0a4527b

Linux之文件跳转

阅读数 872

没有更多推荐了,返回首页