巧用偽靜態解決虛擬主機不支持綁定到子目錄的問題
阿里云虛擬主機只能放一個網站,為了能夠搭建多個網站就要使用到偽靜態文件.htaccess 文件或nginx rewrite。
一、apache服務器的虛擬主機。
阿里云虛擬機提供一個網站文件夾,也就是根目錄里面可以放一個 A 網站,那么要想多放一個 B 網站,假設域名是 www.bbb.net,還要建立一個文件夾,名字隨便起,我這里叫 bweb 也就是 B 網站的根目錄。
那么通過以下操作可以實現阿里云虛擬主機建立多個網站。
1、在阿里云虛擬主機根目錄建立一個.htaccess 文件,內容如下:
RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^www.bbb.net$ [NC] RewriteCond %{REQUEST_URI} !^/bweb RewriteRule ^(.*)$ /bweb/$1 [L]
解釋:要綁定多個網站,需重復上面三行代碼并更改對應域名、目錄名
2、在 bweb 文件夾內建立一個.htaccess 文件,內容如下:
RewriteEngine On RewriteCond %{HTTP_HOST} !^www.bbb.net$ [NC] RewriteRule (.*) https://www.bbb.net/$1 [L,R=301]
注意以上的bbb.net或www.bbb.net是需要你替換掉的。
3、如果還想建立第三個網站,就把 1 中的紅色文字那三行再次復制粘貼到下面,同時修改對應的域名和文件夾名字即可。
二、nginx服務器的虛擬主機
參考一中新建 bweb目錄。 在虛擬主機面板的nginx設置中,添加以下代碼:
location / { try_files $uri $uri/ /index.php?$args; #A站的wordpress偽靜態 if ( $host = 'aaa.net' ) { rewrite ^/(.*)$ http://www.aaa.net/$1 permanent; } #A站不帶www跳轉至https://www. if ( $host = 'bbb.net' ) { rewrite ^/(.*)$ http://www.bbb.net/$1 permanent; } #B站不帶www跳轉至https://www. if ($host ~* "^www.bbb.net$") { set $rule_0 1$rule_0; } if ($uri !~ "^/bweb") { set $rule_0 2$rule_0; } if ($rule_0 = "21") { rewrite ^/(.*)$ /bweb/$1 last; } #B占跳轉至/bweb路徑實現第二個站點 }
如果您的問題還未解決可以聯系站長付費協助。

有問題可以加入技術QQ群一起交流學習
本站vip會員 請加入無憂模板網 VIP群(50604020) PS:加入時備注用戶名或昵稱
普通注冊會員或訪客 請加入無憂模板網 技術交流群(50604130)
客服微信號:15898888535
聲明:本站所有文章資源內容,如無特殊說明或標注,均為采集網絡資源。如若內容侵犯了原著者的合法權益,可聯系站長刪除。