2011-09-20 47 views
2

我有我的網站將所有* .domain.com調用重定向到domain.com。 我想達到的目標是,首先當用戶輸入一個動態子域名時,如果用戶寫入division1.domain.com,那麼他應該被導向其主頁,如 ,那麼該站點應指向頁面division.php?value=division1,並且當用戶訪問division1.domain.com/news/newsdetails.php時,應該用參數value=division1調用頁面news.php。同樣,如果我從domain.com/news/newsdetails.php那樣的基礎url調用新聞頁面,那麼這裏不應該包含任何參數。如何根據查詢字符串重定向動態子域?

這是當前htaccess的代碼

Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com/(news/newsdetails.\.php)$ [NC] 
RewriteCond %1 !^www$ [NC] 
RewriteRule ^([^/.]*)(.*)$ news.php?div=%1$1&filter=$2 [NC,QSA,L] 

# For www.domain.com it should go to the index page 
RewriteCond %{HTTP_HOST} ^(www\.)?domain.com$ [NC] 
RewriteRule ^(.*)$ index.php [NC,L] 

# For Accessing Divisions Page 

RewriteCond %{HTTP_HOST} !^www\.domain\.com$ 
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com$ 
RewriteRule ^$ divisions.php?username=%1 [R,L] 

回答

2

地址:

# redirect ******XX.domain.com 
# to  domain.com/*******.php?value=******XX 
# where XX is a number... 
    RewriteCond %{REQUEST_URI} !news/newsdetails\.php$   # not news page 
    RewriteCond %{HTTP_HOST}!^www\.domain\.com     # prevent rewrite www 
    RewriteCond %{HTTP_HOST} ^(([^.]+)[0-9]+)\.domain\.com$  # catch subdomain 
    RewriteRule .* http://domain\.com/%2.php?value=%1 [R=301, L] # Redirect 

# redirect ******.domain.com/news/newsdetails.php 
# to  domain.com/news.php?value=****** 
    RewriteCond %{REQUEST_URI} news/newsdetails\.php$ # news page 
    RewriteCond %{HTTP_HOST}!^www\.domain\.com  # prevent rewrite www 
    RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com$ # catch subdomain 
    RewriteRule .* http://domain\.com/news.php?value=%1 [R=301, L] # Redirect 

# redirect domain.com/news/newsdetails.php 
# to domain.com/news.php 
    RewriteCond %{REQUEST_URI} news/newsdetails\.php$ # news page 
    RewriteRule .* /news.php?value=%1 [L]    # Redirect 

您htaccess文件。