2013-02-25 44 views
0

我在我的網站的根目錄下約30着陸頁的目錄,以及整潔我想所有的文件移動到/登陸目錄。我希望登陸頁面的所有公共虛榮網址仍然有效,並且不要在地址欄中顯示「登陸」目錄。重寫目標網頁的.htaccess

舉例來說,我想 www.site.com/happiness

顯示存儲在我的/着陸/幸福目錄中的內容,但我想在地址欄中的URL仍然顯示www.site.com /幸福。

我在我的.htaccess什麼現在是

RewriteRule ^happiness(.*)?$ landing/happiness$1 [NC,L,QSA]

這顯示內容不錯,但重寫URL地址欄和公開「登陸」目錄。如何在.htaccess中進行重寫,以便所提供的文件位於登錄目錄中,但地址欄顯示的是原始的虛擬URL?

感謝您的幫助!

+0

「這會顯示內容正常,但會在地址欄中重寫網址並顯示」登陸「目錄。」不,它沒有。你必須有重定向規則或重定向機制。 – kjetilh 2013-02-25 21:08:55

+0

真的嗎?你可能是對的,但你怎麼確定? – 2013-02-26 02:24:52

+0

您的規則只會重寫,而不是重定向,因爲您沒有使用* [R] *標誌。你有沒有更多的.htaccess規則或知道你是否在應用程序本身做任何重定向? – kjetilh 2013-02-26 06:20:42

回答

-1

發生這種情況時,輸入的目錄URL不帶結尾斜槓,例如/happiness/happiness/subdir。在這種情況下,mod_dir用發出一個重定向到URL 的尾部斜線。

可以規避這一點,通過一直添加斜線到內部重定向

RewriteRule ^happiness(?:/.*)?$ landing/$0/ [NC,L,QSA] 

這樣做的缺點是,你必須總是在最後一個斜槓,即使是一些PHP文件。

+0

太棒了!這似乎與我剛剛嘗試過的新目錄一起工作。今天早些時候我正在使用的Dirs仍然在地址欄中重定向/顯示/ landing目錄,儘管這可能是某處緩存的東西。 – 2013-02-26 02:26:11

+0

@TonyBrasunas瀏覽器緩存301重定向,當然。也許重新啓動瀏覽器或清除瀏覽器緩存可能會有所幫助。 – 2013-02-26 06:13:03