2011-05-30 100 views
0

我已經卡住了我的mod_rewrite(約4小時,是的,我也一樣)。 基本上我想創建動態子域。所以我只是創建一個新的文件夾,它自動擁有自己的子域名。我給大家舉一個例子:Rewrite <sub> .domain.com/<path> to/subdomains/<sub>/<path>

/ (root) 
    /logs 
    /configs 
    /otherPrivateStuff 
    [...] 
    /subdomains (This is, where things get interesting) 
     /www   (should be: www.domain.com) [domain.com is automatically 301 to www] 
     /aproject  (should be: aproject.domain.com) 
     /anotherproject (should be: anotherproject.domain.com) 

我的.htaccess看起來是這樣的:

# Mod Rewrite 
RewriteEngine on 

# Subdomains 
RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com(:[0-9]+)? [NC] 
RewriteRule ^(.*) subdomains/%1/$1/ [NS,L] 

http://project.domain.com/path/subpath/file.txt - >http://domain.com/subdomains/project/path/subpath/file.txt


這個工程就像一個魅力,但有一個問題:這個規則不適用,如果url看起來像這樣:http://project.domain.com/subdomains/這就好像根本沒有重寫。

我不明白這一點。有人能幫我嗎? :)

+0

我不再使用Apache了。我切換到Node.js.如果你願意,你可以關閉它。 – buschtoens 2012-07-24 01:48:10

回答

0

我敢肯定你想專門排除「子域名」目錄。要做到這一點,你可以簡單地使用:

# Mod Rewrite 
RewriteEngine on 

# Subdomains 
RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com(:[0-9]+)? [NC] 
RewriteCond %{REQUEST_URI} !^/subdomains 
RewriteRule ^(.*) subdomains/%1/$1/ [NS,L] 

我希望你的工作正確。

+0

這不會影響奇怪的行爲。以下是現場示例:http://pg.janbuschtoens.de/subdomains/ – buschtoens 2011-06-02 00:10:28