2010-02-09 141 views
3

我想使用的子域作爲GET變量,mod_rewrite的,並使用一些參數:mod_rewrite的與子域名和URL模式

/page/language/site/counter - >index.php?o=operator&lg=language&s=arg1&c=arg2

如何做到這一點與mod_rewrite的?

RewriteEngine On 

RewriteCond %{HTTP_HOST} !^www\.example\.com [NC] 
RewriteCond %{HTTP_HOST} ^([a-zA-Z]{3,6})\.example\.com 
RewriteRule ^index/([a-z]{2})/([0-9]{1,2})/([0-9]{1,2})$ http://www.example.com/index.php?o=%1&lg=%2&site=%3&counter=%4 [NC,L] # for index.php 
RewriteRule ^export/([a-z]{2})/([0-9]{1,2})/([0-9]{1,2})$ http://www.example.com/export.php?o=%1&lg=%2&site=%3&counter=%4 [NC,L] # for export.php 

任何想法?

在此先感謝

回答

0

一個RewriteCond也只屬於直接跟隨RewriteRule。因此,在您的情況下,兩個RewriteCond指令都只屬於第一個RewriteRule指令,而第二個RewriteRule沒有關聯的RewriteCond指令。

您可以通過合併兩個RewriteRule在你的例子解決這個問題:

RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC] 
RewriteCond %{HTTP_HOST} ^([a-zA-Z]{3,6})\.example\.com$ 
RewriteRule ^(index|export)/([a-z]{2})/([0-9]{1,2})/([0-9]{1,2})$ http://www.example.com/$1.php?o=%1&lg=$2&site=$3&counter=$4 [NC,L] 

還要注意的$n的使用,而不是%n$nRewriteRule的同時,第n個組的比賽%n是指最後一次成功的RewriteCond的第n組的匹配。