2010-04-05 101 views
1

這裏是我當前的代碼:的.htaccess重寫子域

RewriteCond %{HTTP_HOST} !^example\.com [NC] 
#RewriteCond %{REQUEST_URI}!^something 
RewriteCond %{HTTP_HOST} ^([^.]+)\.example\.com 
RewriteRule (.*) something/%1/$1 [QSA,L] 

我的目標是改寫http://*.example.com/whateverhttp://example.com/something/*/whatever,假設*是上是相同的,並whatever是上是相同的。不過,我相信這會導致無限循環,所以我添加了註釋掉的行(RewriteBase是/ btw),但是如果我取消註釋,則整個站點是500響應代碼。沒有這一行,只有子域名錯誤。

我在做什麼錯,我該如何解決這個問題?我已經配置了服務器,所以任何事情都會被重定向到我的public_html文件夾。

編輯:澄清,我試圖做一個內部重定向,而不是外部。

編輯:沒有內部重定向的標誌似乎。有什麼地方可以看到破碎的重寫小冊子的實際錯誤信息嗎?如果我知道出了什麼問題,我將能夠更好地修復它。

+0

這只是我的代碼中的一部分,/ something/* /在稍後的時間點被重定向。 – Cyclone 2010-04-05 16:36:29

+0

第二次,爲什麼投票結束編程問題?這不屬於serverfault,.htaccess是編程相關的。 – Cyclone 2010-04-05 17:07:55

回答

2

我沒有看到規則重寫域;也許這是你的問題。使用你的代碼,請嘗試:

RewriteCond %{HTTP_HOST} !^example\.com [NC] 
#RewriteCond %{REQUEST_URI}!^something 
RewriteCond %{HTTP_HOST} ^([^.]+)\.example\.com 
RewriteRule (.*) http://example.com/something/%1/$1 [QSA,L] 

我希望這將有助於你 傑羅姆WAGNER

+0

它似乎改寫R標誌的方式,有沒有辦法在內部做到這一點?我不希望這些更改可見。 – Cyclone 2010-04-05 21:58:30

+0

雖然,它工作大聲笑。 – Cyclone 2010-04-05 22:19:18

0

我加入了P(代理)標誌的規則和它的工作。

+0

傑羅姆的規則完成了大部分工作,所以我會將他標記爲已接受。 – Cyclone 2010-04-06 00:44:25