2011-09-20 85 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文件。