2011-09-20 63 views
0

我有這樣的代碼在我的.htaccess來處理子域(http://foo.mydomain.com)子域名的重定向mod_rewrite的與子組合

RewriteCond %{HTTP_HOST} !^www.mydomain.com 
RewriteCond %{HTTP_HOST} ([^.]+).mydomain.com [NC] 
RewriteRule ^(.*)$ filter.php?type=country&country=%1 [L] 

問題是做我必須做的,如果什麼例如有人把一個鏈接是這樣的:

http://foo.mydomain.com/bar

我想這重定向到從以前的代碼filter.php(比如otherpage.php)不同的另一頁,我試了下代碼,但它不是不工作

RewriteCond %{HTTP_HOST} !^www.mydomain.com 
RewriteCond %{HTTP_HOST} ([^.]+).mydomain.com/([^/]+) [NC] 
RewriteRule ^(.*)$ otherpage.php?type=country&country=%1 [L] 

沒有下一個:

RewriteCond %{HTTP_HOST} !^www.mydomain.com 
RewriteCond %{HTTP_HOST} ([^.]+).mydomain.com [NC] 
RewriteCond %{REQUEST_URI} ^/([^/]+) 
RewriteRule ^(.*)$ otherpage.php?pname=$1 [L] 

鏈接總是與第一條規則我寫了解決。

回答

0

爲您的第一個組添加條件,檢查空的REQUEST_FILENAME。這會阻止它在除了裸露域名之外的情況下匹配。

RewriteCond %{HTTP_HOST} !^www.mydomain.com 
RewriteCond %{HTTP_HOST} ([^.]+).mydomain.com [NC] 
RewriteCond %{REQUEST_FILENAME} ^/?$ 
RewriteRule ^(.*)$ filter.php?type=country&country=%1 [L] 
+0

感謝您照顧** subdomain.mydomain.com **的請求,但如何處理** subdomain.mydomain.com/param ** ??等鏈接。 – erick

+0

**編輯**實際上,奇怪的是,如果我沒有這樣^ /?$就像這樣*!^ /?$ *然後它可以工作 – erick