Linux寶塔控制面板如何實現多個二級域名301重定向跳轉
阿新 • • 發佈:2019-01-27
寶塔Linux面板中,有著自帶的301重定向功能(市面上很多面板都有這個功能),然而這時實現繫結域名(主域)301跳轉的,如果你要將主域下的好幾個二級域名301重定向,就無法直接進行301了,這個時候,就需要使用”配置檔案”這個功能了,使用步驟如下:
步驟一
- 選擇主域 > 設定 > 配置檔案
步驟二
- 修改程式碼,我們主域以“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的前提是你的二級域名用的是【子目錄繫結】功能來實現二級域名,而不是直接將二級域名作為一個主域建立網站的!