2015-09-10 171 views
2

我想重新調整網站上的某些文件夾,具體而言,我想將「images /」中包含的內容移至「images/gallery /」,但我不想打破以前的鏈接,所以我想到使用htaccess。使用htaccess將文件夾的內容重定向到另一個文件夾

我查了幾個教程,甚至幾個問題在這裏stackoverflow,嘗試了好幾次,但我不能讓重寫規則工作。

這是我有:

RewriteRule ^images/(.*) /images/gallery/$1 [R=301,NC,L] 

但是,當我嘗試訪問裏面任何東西/圖片/(例如圖像/ test.jpg放在),它保持到圖像/ test.jpg放在與不走到images/gallery/test.jpg。所以它似乎沒有效果。

任何線索我可能會做錯什麼?

謝謝!

+0

清除瀏覽器緩存, – starkeen

+0

你好,試過了,並且也試圖與幾個瀏覽器。 – andybadwool

回答

1

你目前的規則將導致重定向循環,因爲/images/存在於源和目標URL,你甚至不使用錨$

你可以調整你的正則表達式是這樣的:

RewriteRule ^images/([^/]+)$ /images/gallery/$1 [R=301,NC,L] 

現在模式將匹配/images/test.jpg,但由於在模式中使用了[^/]+,因此不匹配重定向的URL /images/gallery/test.jpg

請確保此規則是RewriteEngine On之後的第一個,並且/images/文件夾中沒有.htaccess。


編輯:如果原始路徑具有子目錄也然後使用:

RewriteRule ^images/((?!gallery/).+)$ /images/gallery/$1 [R=301,NC,L] 
+0

我可以問你一個額外的問題嗎?我有幾個文件夾這樣構造:images/1-100 /,images/101-200 /,一直到images/3701-3800 /。他們的共同點是他們總是有一個「 - 」,「 - 」之前的部分總是以1結尾,文件夾的全名總是以0結尾。這些是我想要移動的唯一文件夾,獨自留下/ images /中的其他文件夾。我可以將它們重定向到images/gallery/1-100,images/gallery/101-200等,是否在一個單獨的魔法規則中,或者我是否爲每個文件夾單獨執行?非常感謝你的智慧! – andybadwool

+0

嗨,非常感謝你幫助我。不幸的是,這一個沒有奏效。它仍然是圖像/ 2001-2100 /(例如)。這很奇怪,因爲,閱讀你的表達似乎是正確的,雖然我是一個初學者,當談到正則表達式。 – andybadwool

+0

這對我來說是超級晚了,所以最後一天的評論。完全相同的規則爲我工作,並重定向'http:// localhost/images/2001-2100 /'到'http:// localhost/images/gallery/2001-2100' – anubhava

相關問題