2013-03-25 39 views
0

我在我的htaccess中有以下規則,我需要修改它以在重寫的url的末尾添加變量。基本上我有兩個域指向同一主機,我顯示不同的網站取決於它使用的是哪個域。.htaccess基於域的mod_rewrite

RewriteCond %{HTTP_HOST} ^(www\.)?rrr\.me 
RewriteCond %{REQUEST_URI} !^/rrr 
Rewriterule ^(.*)$ /rrr/$1 [L] 

如果有人去rrr.mewww.rrr.me他們能在這個網站中的rrr目錄中的index.php。這很好用!

我現在需要能夠添加一個變量到index.php。所以有人會輸入rrr.me/abc,它會以這種方式將abc追加到index.php的末尾index.php?var1=abc

在Olaf Dietsche的意見後的新的REWRITE規則。

RewriteCond %{HTTP_HOST} ^(www\.)?rrr\.me 
RewriteCond %{REQUEST_URI} !^/rrr 
RewriteCond %{REQUEST_URI} !/assets/ 
Rewriterule ^.*$ /rrr/index.php?rrr=$0 [L] 

RewriteCond %{HTTP_HOST} ^(www\.)?rrr\.me 
RewriteCond %{REQUEST_URI} !^/rrr 
Rewriterule ^assets/.*$ /rrr/$0 [L] 
+0

我修改了最終規則。 '!assets'條件必須添加到* first *規則中,第二個規則也必須具有'!rrr'規則。希望有所幫助。 – 2013-03-26 12:28:48

+0

現貨!感謝所有的幫助,真的很感激它。我也學到了很多:-) – superphonic 2013-03-26 13:40:46

回答

1

要追加請求的URL作爲查詢字符串

Rewriterule ^.*$ /rrr/index.php?var1=$0 [L] 

要排除assets目錄,則必須使用一個額外的RewriteCond

RewriteCond %{HTTP_HOST} ^(www\.)?rrr\.me 
RewriteCond %{REQUEST_URI} !^/rrr 
RewriteCond %{REQUEST_URI} !/assets/ 
Rewriterule ^(.*)$ /rrr/$1 [L] 

對於資產的文件,你可以使用類似的重定向

RewriteCond %{HTTP_HOST} ^(www\.)?rrr\.me 
RewriteCond %{REQUEST_URI} !^/rrr 
Rewriterule ^assets/.*$ /rrr/$0 [L] 
+0

謝謝你。我用你的線替換了我的規則的第三行,現在我收到了內部服務器錯誤。有任何想法嗎? – superphonic 2013-03-25 17:02:43

+0

@superphonic您請求了哪個網址?你有權訪問服務器日誌嗎? – 2013-03-25 17:28:35

+0

添加您的Rewriterule後,我去了rrr.me並得到一個內部服務器錯誤。當我把我的重寫規則恢復時,它按預期工作。我沒有改變RewriteCond。 – superphonic 2013-03-25 17:37:51