2011-10-24 64 views
1

我需要一個重寫規則,允許完全停止。我怎麼可以允許這個?我要的是 店/域/ www.test.com成爲店/域/ Controller.php這樣參數1 = www.test.com國防部重寫 - 允許完全停止

原來的規則我有低於:

重寫規則^ shop/domain /([^/.]+)/?$ shop/stock/controller.php?param1 = $ 1 [NC]

這是有效的,但只有當我刪除句號。

我也曾嘗試以下:?

重寫規則^店/結構域/([^ /] +)/ $店/域/ Controller.php這樣的param1 = $ 1 [NC]

這允許完全停止,但後來有controller.php是它應該是www.test.com的參數。

回答

0

如果所有的域開頭的「www。」,你可以這樣做

RewriteRule ^shop/domain/www\.([^/]+)/?$ shop/domain/controller.php?param1=$1 [NC,L] 

與您的規則的問題是,它也符合controller.php就好像它是一個域。您可以添加以下兩個條件改寫爲防止這一點:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^shop/domain/([^/]+)/?$ shop/domain/controller.php?param1=$1 [NC,L] 

!-d意味着不僅現有的目錄,!-f意味着不是exisiting文件(例如controller.php)。

+0

是的,工作,謝謝。如果我不想要「www。」怎麼辦?如果我將www包括在內,我不會解決它的工作原理。當我離開它時不起作用。 – LeeTee

+0

@LeeTee我更新了我的回答以解決此評論。 – middus

+0

是的,也有效。非常感謝 – LeeTee