我想爲一個子域創建一個規則,該子域會重定向到根目錄中的文件。如果規則不匹配,則應將用戶重定向到原始域。規則不適用於現有文件
這兩個子域和域鏈接到同一目錄。但是,如果給定REQUEST_URI的第一個子目錄與目錄中的文件名匹配,那麼我的規則似乎不匹配REQUEST_URI。
信息:
- HTTP://sub.domain.tld - >根目錄
- HTTP://domain.tld - >根目錄
- 文件test.php的存在於根 - 包含內容的目錄:print_r($ _ SERVER ['QUERY_STRING']);
RewriteEngine On
RewriteBase/
RewriteCond %{HTTP_HOST} ^sub\. [NC]
RewriteCond %{REQUEST_URI} ^/([a-z]+)/ [NC]
RewriteRule ^test/ http://domain.tld/ [L,R=301]
RewriteRule ^([a-z]+)/(.*)$ test.php?dir=$1&data=$2 [L]
隨着http://sub.domain.tld/xyz/something的test.php的輸出 「DIR = XYZ &數據=東西」。
但是,如果我使用http://sub.domain.tld/test/something我只得到一個空白頁。但是這也應該輸出「dir = test & data = something」。
我的錯誤是什麼?是否有可能優化我的規則?
是應該在那裏的第三條規則? (RewriteRule^test/... – yoavmatchulsky 2011-03-04 21:56:52
是的,我試圖抓住request_uri中的文件名,因爲第二個RewriteRule不匹配。但它是我爲解決問題而添加的第一個RewriteRule,仍然沒有成功... – 2011-03-04 21:58:55
屬於serverfault。這不是一個編程問題,所以它在這裏是無關緊要的。 – 2011-03-04 22:00:13