2016-09-20 74 views
0

這一直令我沮喪,我找不到同樣的問題,也許我只是在錯誤地搜索。有人搞砸了,我們有一堆谷歌鏈接到一個不存在的子文件夾。所以我想在htaccess中做一個301重定向來排序。htaccess將子文件夾重定向到根

問題是我似乎無法讓重定向工作多個文件夾很深。

例子。 http://example.com/subfolder/someOtherFolder重定向到http://example.com/someOtherFolder就好。

然而http://example.com/subfolder/someOtherFolder/yetAnother在同一頁面上停留,並返回一個404

這是我返回上述結果整個的.htaccess的最後的變動,沒有什麼我試圖返回什麼,但上面。

<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteBase/
RewriteRule ^sitefiles/(.*)/$ /$1 [R=301] 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php 
</IfModule> 

幫助? (我討厭的.htaccess> <。)

回答

0

與嘗試:

RewriteRule ^sitefiles/(.*/?)$ /$1 [NC,R=301,L] 
+0

相對確定這是我嘗試過的變化之一,只是嘗試了它,它也做了同樣的事情。謝謝你嘗試。 –

+0

您是否清除了緩存並嘗試使用其他瀏覽器? – Croises

+0

Yessir,其他瀏覽器,隱身模式,甚至另一臺計算機 –

0

的問題是這樣的規則:

RewriteRule ^sitefiles/(.*)/$ /$1 [R=301] 

此規則需要尾隨斜線上請求的URI

取而代之:

RewriteRule ^sitefiles/(.*) /$1 [R=301] 

請注意,還有一個Redirect指令可以執行簡單的重定向。你的情況:

Redirect /sitefiles/

最後,要注意的是重寫塊的整體可以替換爲:

FallbackResource /index.php 

因此,最終推薦的(最佳實踐),配置爲:

Redirect /sitefiles/
FallbackResource /index.php 

而不是完全使用重寫。

相關問題