2015-10-10 39 views
1

我想設置一個htaccess文件,將任何子域的請求路由到/ public_html /文件夾中的index.php文件。我已經將DNS配置爲接受通配符子域名。如何使用htaccess將所有子域路由到index.php而不使用301重定向

我打算給用戶一個網站的個性化網址,並通過子域名傳遞用戶名,所以重要的是網址仍然存在,因此301重定向是不可能的。

我的htaccess目前看起來是這樣,但不起作用(服務器未找到):

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(.+)\.mydomain\.com$ [NC] 
RewriteRule . /index.php?subdomain=%1 [L,QSA] 

我的最終目標是能夠得到一個URL,例如//joebloggs.mydomain.com/foo/bar轉化爲類似//www.mydomain.com/index.php?user=joebloggs&route=/foo/bar

我需要在htaccess文件中做什麼來完成這項工作?

+0

你有機會獲得虛擬主機文件? – hjpotter92

+0

對不起,我沒有訪問 – Marc

回答

1

你可以把它這樣

# if request is for a subdomain (except "www") 
RewriteCond %{HTTP_HOST} ^((?!www\.).+)\.mydomain\.com$ [NC] 
# internally rewrite to index.php 
RewriteRule ^((?!index\.php$).*)$ /index.php?subdomain=%1&route=$1 [L] 
0

由於看起來規則是在您嘗試導航到index.php時執行的,不能用index.php中的簡單php邏輯來完成此操作嗎?

我可能誤解了你的目標,但在我看來你可以很容易地用GET來代替它。你的網址也可以用於這種方法。

+0

這個想法是,有人可以去'// username.mydomain.com /任何/任何',這將最終轉化爲'//www.mydomain.com/index.php?用戶=用戶名和路線= /無論/無論「 - 這是否更有意義? – Marc

+0

在這種情況下,我相信你的問題可能是這個問題的重複; http://stackoverflow.com/questions/18303858/htaccess-rewrite-subdomain-as-get-var-and-path-as-get-var – Annihlator

相關問題