如果我在瀏覽器中輸入以下鏈接。從子域到查詢字符串,htaccess代碼
http://sub.domain.com然後它會打開http:/domain.com/page.php?c = sub並在瀏覽器地址欄中訪問者會看到http://sub.domain.com。
我知道這可以通過重寫url來完成。任何人都可以告訴我的htaccess代碼?
如果我在瀏覽器中輸入以下鏈接。從子域到查詢字符串,htaccess代碼
http://sub.domain.com然後它會打開http:/domain.com/page.php?c = sub並在瀏覽器地址欄中訪問者會看到http://sub.domain.com。
我知道這可以通過重寫url來完成。任何人都可以告訴我的htaccess代碼?
恰恰相反,它不能通過重寫url來完成。
您需要設置
然而,你不需要任何的查詢字符串也不改寫,因爲你總是可以很容易地從HTTP_HOST
變量有你的域。
感謝你的回答。但是當我在地址欄中寫入http://sub.domain.com時,它顯示的頁面無法顯示,bcoz子域不是現有的子域。我無法使用HTTP_HOST來獲取URL並提取單詞「sub」。 – Arindam 2013-03-08 18:14:10
如上所述,服務器必須配置爲偵聽子域名。假設DNS解析爲正確的IP,則必須將每個子域設置爲映射到相同的目錄,或者如果您有權訪問服務器配置,則可以爲該域放入通配符記錄。只是爲了澄清一下......一旦完成了這一切,那麼你可以使用URL重寫來將sub.domain.com更改爲sub.domain.com/page.php?c=sub,如果你願意的話,指出你不妨使用HTTP_HOST變量。 – Josh 2013-03-08 18:23:00
我認爲你應該分兩步做。
步驟1:
如果你有你的控制面板上直接訪問,你應該去它,並使用星號*
這一步,你可以使用sub.domain.com
後的通用虛擬子站點。如果你沒有acees來控制面板,請管理員爲你做。
第2步: 您應該修改下面一行.htaccess文件
#提取domain.com的子域部分
RewriteCond %{HTTP_HOST} ^([^\.]+)\.domain\.com$ [NC]
#檢查子域部分不www和ftp和郵件
RewriteCond %1 !^(www|ftp|mail)$ [NC]
#重定向傳遞作爲參數的子域
RewriteRule ^.*$ http://www.domain.com/page.php?c=%1 [R,L]
我希望所有的請求PHP腳本,這可以幫助你
[你嘗試過什麼?](http://whathaveyoutried.com) – chriz 2013-03-08 18:03:17