赞
踩
宝塔Linux面板中,有着自带的301重定向功能(市面上很多面板都有这个功能),然而这时实现绑定域名(主域)301跳转的,如果你要将主域下的好几个二级域名301重定向,就无法直接进行301了,这个时候,就需要使用"配置文件"这个功能了,使用步骤如下:
配置文件里的代码如下:
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的前提是你的二级域名用的是**【子目录绑定】**功能来实现二级域名,而不是直接将二级域名作为一个主域建立网站的!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。