2014-01-07 104 views
6

我環顧四周,嘗試了一些有效的規則和條件;而有些則不起作用,或者條件太多會導致其他域也重定向。這個工作對我來說:htaccess重定向+在url中隱藏子文件夾

# Redirect (also catches www.) 
RewriteCond %{HTTP_HOST} ^(www.)?domain.com$ 
RewriteRule ^(/)?$ subfolder [L] 

導致,如果你訪問www.domain.com或domain.com 被重定向到domain.com/subfolder 大,但I'dd也喜歡/子文件夾部分是隱藏的網址。

如何實現這一目標?

請注意,我有多個域,每個域都應該重定向到它自己的文件夾。 我也希望每個頁面在其各自的文件夾中仍可見。

所以www.domain.com/abc應該重定向到domain.com/subfolder/abc但顯示domain.com/abc

回答

10

試試這個規則:

# remove www 
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 
RewriteRule^http://%1%{REQUEST_URI} [NE,R=301,L] 

RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ 
RewriteRule !^subfolder/ /subfolder%{REQUEST_URI} [L] 
+0

這工作!但我只注意到www。部分被視爲可選,而不是被刪除。雖然這很好,但它是否可以讓它也一直刪除www。 ? – Zerreth

+0

其實我們需要一個單獨的www刪除規則,因爲這只是內部重寫。 – anubhava

+0

謝謝,這幫助我解決了同樣的問題。 :-) – r0ber7