現(xiàn)在很多主機商都不支持虛擬目錄設(shè)定,比如:手機站是m.amd5.cn,手機站放在PC網(wǎng)站的二級目錄下面即www.zhongjima.net/m這樣可以訪問。但是主機綁定m.amd5.cn以后,默認訪問的是PC站的頁面內(nèi)容,現(xiàn)在我們要實現(xiàn),只要在瀏覽器輸入m.amd5.cn或者是www.zhongjima.net/m,回車以后都訪問/m目錄下面的內(nèi)容,并且域名跳轉(zhuǎn)到手機二級域名m.amd5.cn。
這就需要利用.htaccess文件(前提你的空間服務(wù)器必須支持apache的rewrite功能,只有這樣才能使用.htaccess)。
如果你的空間是Linux服務(wù)器一般默認都開啟了的。
準備工作就不用多說了,域名解析并綁定到空間,域名解析一般2小時左右全國就生效了,等生效以后再測試。
首先在本地建個txt文件,復(fù)制下面的代碼修改替換你要綁的域名和目錄,并傳到網(wǎng)站主目錄下再改成為.htaccess。
例如:下面是以 m.9pinw.com 和 amd5.cn 為例的.htaccess代碼。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# 綁定m.9pinw.com 到 m 子目錄
RewriteCond %{HTTP_HOST} ^m\.9pinw\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/m/
RewriteRule ^(.*)$ m/$1?Rewrite [L,QSA]
#可以綁定多個 只需重復(fù)上三行代碼并更改一下域名、目錄名就好了
#綁定 amd5.cn 到 seo 子目錄
RewriteCond %{HTTP_HOST} ^www\.amd5\.cn$ [NC]
RewriteCond %{REQUEST_URI} !^/seo/
RewriteRule ^(.*)$ seo/$1?Rewrite [L,QSA]
</IfModule>
如果你以完成上面的步驟,你的子域名應(yīng)該可以訪問了,但你會發(fā)現(xiàn)在瀏覽器上訪問主域名+綁定的域名目錄(即www.9pinw.com/m)也可以訪問,可這并不是我們想要的,接下來我們完成最后一步。
在每一個綁定的目錄中,如m目錄中 也增加一個.htaccess 文件。
.htaccess代碼如下:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
#只許綁定的域名訪問
RewriteCond %{HTTP_HOST} !^m\.9pinw\.com$ [NC]
RewriteRule (.*) http://m.9pinw.com/$1 [L,R=301]
#對綁定目錄下與同名的目錄的處理(添加下面代碼以后,如果報錯,可以注釋)
RewriteCond %{REQUEST_URI} ^\/m\/ [NC]
RewriteCond %{QUERY_STRING} !^(.*)?Rewrite
RewriteRule ^(.*)$ /%{REQUEST_URI}/%{REQUEST_URI}/$1?Rewrite [L,QSA]
</IfModule>
注意:
如果你的網(wǎng)站根目錄已存在.htaccess文件;比如 WordPress 修改過固定鏈接,那么目錄會有一個.htaccess 文件里面如有:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
改為:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^m\.9pinw\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/m/
RewriteRule ^(.*)$ m/$1?Rewrite [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
2017年8月13日 上午9:09 沙發(fā)
ding