2013-03-13 30 views
1

我正在嘗試爲不同的子域創建重定向到不同的文件,可能在未來的域。這是基於ModX CMS的。子域使用htaccess鏈接到不同的文件

我想保持url相同,只是爲每個子域運行不同的文件,傳遞一些數據。對於domain.com它是index.php,對於sub1.domain.com - sub1.php。此外,我想通過一些數據,你可以看到它在下面的例子:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteCond %{HTTP_HOST} ^www\.domain\.com [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule (.*) /index.php?q=$1 [L,QSA] 

RewriteCond %{HTTP_HOST} ^sub1\.domain\.com [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule (.*) /sub1.php?q=$1 [L,QSA] 

RewriteCond %{HTTP_HOST} ^sub2\.domain\.com [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule (.*) /sub2.php?q=$1 [L,QSA] 

RewriteCond %{HTTP_HOST} ^sub3\.domain\.com [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule (.*) /sub3.php?q=$1 [L,QSA] 

RewriteCond %{HTTP_HOST} ^sub4\.domain\.com [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule (.*) /sub4.php?q=$1 [L,QSA] 

RewriteCond %{HTTP_HOST} ^sub5\.domain\.com [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule (.*) /sub5.php?q=$1 [L,QSA] 

RewriteCond %{HTTP_HOST} ^sub6\.domain\.com [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule (.*) /sub6.php?q=$1 [L,QSA] 

# The Friendly URLs part 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 

我試圖#最後3行,但它沒有任何區別。我在htaccess中有更多的行,但他們是#。在我的服務器的控制面板中創建的子域名,所有子域名都被放在同一個目錄(public_html)。

現在我不確定傳遞數據的工作,當我去sub1.domain.com apache重定向到www.domain.com/sub1.php時,這是錯誤的。

如何鏈接子域名到他們的php文件並保持url相同(sub1.domain.com)?

回答

1

刪除冗餘的東西,讓你這樣的代碼:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteCond %{HTTP_HOST} ^www\.domain\.com [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule (.*) /index.php?q=$1 [L,QSA] 

RewriteCond %{HTTP_HOST} ^sub1\.domain\.com [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule (.*) /sub1.php?q=$1 [L,QSA] 
+0

THX的迴應,這是我得到:'請求超過了10個內部重定向的上限,由於可能的配置錯誤。如果需要,使用'LimitInternalRecursion'來增加限制。使用「LogLevel debug」獲取回溯。,referer:http:// sub1.domain.com /'。我有6個子域名。 – miszczu 2013-03-13 10:47:02

+0

Sub1.php是否存在於sub1.domain.com $ DOCUMENT_ROOT下? – anubhava 2013-03-13 10:50:44

+0

是的,所有子域都指向public_html - 域文件夾。這就是爲什麼我想用htaccess將它們指向不同的文件。我想這樣做的原因是模板,cms中的鏈接(圖像,js,css)...所有文件已經存在。 – miszczu 2013-03-13 10:53:09

相關問題