[英]Rewrite virtual subdomain to subfolder and keep original url
我在網上搜索了幾天,但沒有發現任何疑問。 這就是我想做的:
我網站上的每個用戶都收到一個個人子域,例如http://username.domain.com 。 當然,這是一個虛擬子域。
現在,我已經設置了通配符DNS A記錄,將mod_rewrite設置為ON,並實現了以下操作:
當有人瀏覽到http:// anysubdomain.domain.com時,他們將被重定向到http:// www.domain.com/sub/index.php?var=anysubdomain。 在index.php中,有一個函數可以基於'var'變量(子域的名稱)獲取唯一信息。
我想做的是,當有人瀏覽到http:// anysubdomain.domain.com時,他被重定向到http:// www.domain.com/sub/index.php?var=anysubdomain(就像現在一樣),但是那原始URL(http:// anysubdomain.domain.com)保留在瀏覽器欄中。 因此,看起來每個用戶都有自己的子域。
這是我當前使用的htaccess文件:
RewriteEngine On
Options +FollowSymlinks
RewriteCond %{HTTP_HOST} !^www\.domain\.com
RewriteCond %{HTTP_HOST} !^static\.domain\.com
RewriteCond %{HTTP_HOST} ^(www\.)?(.+)\.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/sub/index.php?username=%2 [L]
我希望一切都清楚了,如果沒有:請詢問,我提供更多信息!
提前致謝!
尤里
只要您的所有子域和主域共享相同的文檔根目錄,就可以從規則中刪除http://www.domain.com
位:
RewriteCond %{HTTP_HOST} !^www\.domain\.com
RewriteCond %{HTTP_HOST} !^static\.domain\.com
RewriteCond %{HTTP_HOST} ^(www\.)?(.+)\.domain.com$ [NC]
RewriteRule ^(.*)$ /sub/index.php?username=%2 [L]
否則,您需要通過添加P
標志來使用mod_proxy:
RewriteCond %{HTTP_HOST} !^www\.domain\.com
RewriteCond %{HTTP_HOST} !^static\.domain\.com
RewriteCond %{HTTP_HOST} ^(www\.)?(.+)\.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/sub/index.php?username=%2 [L,P]
盡管第一種方法會更有效率。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.