2012-07-19 39 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>"; 
?> 

測試結果,您可以從服務器名稱或服務器主機導出子域名