2012-07-19 35 views
1

我想写一个mod_rewrite的这样的.htaccess重写通配符subsubdomain而params

  • wildcard.subdomain.domain.com =>subdomain.domain.com/data.php?q=wildcard
  • wildcard.subdomain.domain.com/?repeat=1 =>subdomain.domain.com/data.php?q=wildcard&repeat=1
  • subdomain.domain.com =>data.php
  • www.subdomain.domain.com工作=>data.php

我已经在我的.htaccess

<IfModule mod_rewrite.c> 
    Options +FollowSymlinks 
    RewriteEngine On 
    RewriteCond %{HTTP_HOST} ^([^.]+)\.abc\.def\.com\.br$ [NC] 
    RewriteCond %1 !^(www)$ [NC] 
    RewriteRule ^.*$ data.php?q=%1 
</IfModule>` 

回答

1

尝试这些:

# This should cover the first 2 cases 
    RewriteCond %{HTTP_HOST} ^([^.]+)\.abc\.def\.com\.br$ [NC] 
    RewriteCond %1 !^(www)$ [NC] 
    RewriteRule ^$ /data.php?q=%1&%{QUERY_STRING} [L,QSA] 

    # This should cover the last 2 
    RewriteCond %{HTTP_HOST} ^([^.]+)\.abc\.def\.com\.br$ [NC] 
    RewriteCond %1 ^(www)$ [NC] 
    RewriteRule ^$ /data.php?%{QUERY_STRING} [L,QSA] 

注意,这什么也不做的情况下,请求是:wildcard.subdomain.domain.com/some/path/to/file.html这些只匹配/的请求URI。

1

迄今所做对于重复使用的参数

RewriteRule ^.*$ data.php?q=%1&%{QUERY_STRING} 
0

如果您正在使用的cPanel,您可以创建一个*子域(* .domain.com),并将其连接到一个目录,然后创建在该目录中的index.php一个:

<?php 
echo "<pre>"; 
print_r($_SERVER); 
echo "</pre>"; 
?> 

测试结果,您可以从服务器名称或服务器主机导出子域名