2013-04-24 197 views
1

好的,所以我有像這些demo1.domain.net,demo2.domain.net,demo3.domain.net和所有需要顯示子文件夾的內容像這個示例 demo1的網址。 domain.net將顯示domain.net/websites/demo1 的內容,我需要這樣做的方式,所有的域像$ whatever.domain.net到domain.net/websites/$whatever.domain.net,我已經啓用通配符DNS,我似乎無法將它整理出來,請記住我不希望它重定向。.htaccess重寫多個網址無重定向

這裏是我試過

RewriteEngine on 
RewriteBase/
RewriteCond %{HTTP_HOST} ^(www\.)?[^.]+\.domain\.net.*$ 
RewriteRule /websites/$1 [L] 

我只是得到domain.net的主頁與此有關。

您的幫助將不勝感激。

回答

1

關閉,試試這個:

RewriteEngine on 
RewriteBase/
RewriteCond %{REQUEST_URI} !^/websites/ 
RewriteCond %{HTTP_HOST} ^(www\.)?([^.]+\.domain\.net.*)$ [NC] 
RewriteRule ^(.*)$ /websites/%2/$1 [L] 

請注意,這隻會工作,如果所有的演示* .domain.net指向同一個文檔根目錄作爲主域名(domain.net )。

+0

他們都指向主根文件夾,但這個d oesn't爲我工作我得到內部服務器錯誤 服務器遇到內部錯誤或配置錯誤,無法完成您的請求。 – 2013-04-24 08:20:43

+0

這裏有人嗎?仍然無法得到它的工作:/ – 2013-04-24 08:30:06

+0

@ user2314536忘了添加排除條件 – 2013-04-24 08:33:56

0

我想,我可以管理這個!能否請您再次嘗試這些的.htaccess指令:

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^(www\.)?domain\.net$ 
RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9-]+)\.domain\.net$ 
RewriteRule ^/?$ http://domain.net/websites/%2 [P] 

它將改寫$無論 .domain.netdomain.net/websites/ $無論

現在,如果它的假設是$無論 .domain.netdomain.net/websites/ $無論 .domain.net那麼你可以試試這個:

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^(www\.)?domain\.net$ 
RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9-]+)\.domain\.net$ 
RewriteRule ^/?$ http://domain.net/websites/%2.domain.net [P] 

或者下面的代碼可能是你以後想要的:

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^(www\.)?domain\.net$ 
RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9-]+)\.domain\.net$ 
RewriteRule ^(.*)$ http://domain.net/websites/%2.domain.net/$1 [P] 
+0

錯誤的請求 您的瀏覽器發送了此服務器無法理解的請求。 請求標頭字段的大小超出服務器限制。 X-Forwarded-Host /n :( – 2013-04-24 08:43:57

+0

哎呀,我犯了一個巨大的錯誤,它應該是它將重寫$ whatever.domain.net到domain.net/websites/$whatever.domain.net – 2013-04-24 08:49:33

+0

@ user2314536請嘗試我的另一個嘗試.. – 5ervant 2013-04-24 08:51:19