2013-07-08 41 views
0

我需要做一些重寫規則列入的.htaccess符合下列條件:的.htaccess重寫規則語法

(www).site.com/setup --> redirects to: www.site.com/setup 
demo.site.com/setup --> redirects to: www.site.com/demo/setup 
(www).site.com/xyz --> redirects to: www.site.com/web/xyz 
demo.site.com/xyz --> redirects to: www.site.com/demo/web/xyz 

注意(WWW)意味着用戶可以輸入和沒有輸入www和「XYZ」可以是任何字符串,但與關鍵字「setup」不同(由於前兩條規則)。

這是我嘗試(使用[L],使例外),但我不知道這是否是好的就夠了:

RewriteCond ${REQUEST_URI} demo. 
RewriteCond ${REQUEST_URI} /setup 
RewriteRule /demo/setup [L] 

RewriteCond %{HTTP_HOST} !^www\. 
RewriteCond ${REQUEST_URI} /setup 
RewriteRule /setup [L] 

RewriteCond ${REQUEST_URI} demo. 
RewriteRule ^/(.*)$ www.site.com/demo/web/$1 [L] 

RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^/(.*)$ www.site.com/web/$1 [L] 

任何想法?

盧西亞諾

+0

我們展示你的嘗試。 – anubhava

+0

你試過了什麼? ca人需要很多東西,但如果你不嘗試它不算在這裏夥伴 – jycr753

+0

我添加了我的嘗試,但不知道它。 – Luciano

回答

1

啓用mod_rewrite的,並通過httpd.conf的.htaccess,然後把這個代碼在你.htaccessDOCUMENT_ROOT目錄:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteCond %{HTTP_HOST} ^(demo)\.(.+)$ [NC] 
RewriteRule ^(setup)/?$ http://www.%2/%1/$1 [L,R=301,NC] 

RewriteCond %{HTTP_HOST} ^(demo)\.(.+)$ [NC] 
RewriteRule ^(xyz)/?$ http://www.%2/%1/web/$1 [L,R=301,NC] 

RewriteCond %{HTTP_HOST} !^demo\. [NC] 
RewriteRule ^(xyz)/?$ /web/$1 [L,R=301,NC] 
+0

哇,這與我所做的完全不同。我會試試看,讓你知道!謝謝! – Luciano