2010-03-16 69 views
0

我需要爲我的網站做一個大量的301重定向所有以.html結尾的頁面。我正在尋找將所有舊的.html文件移動到一個子文件夾ir。RedirectMatch 301只是HTML文件

RedirectMatch 301 (.*)\.html$ http://www.domain.com/folder/$1.html 

當我添加這一點,並刷新瀏覽器,我得到一噸的文件夾/文件夾/文件夾現在的網址即

domain.com/folder//folder/folder/folder後.... 。

任何想法可能是錯誤的?

謝謝如果你能幫助

+0

給你從一個重定向源URL的一個具體的例子,你想在哪裏就被重定向。 – 2010-03-16 11:23:37

+0

好吧,我是給一個更好的例子一個正常的301將是 RedirectMatch 301 file.html http://www.domain.com/folder/file.html – Lee 2010-03-16 12:30:27

回答

1

的問題是,「文件夾/ foo.html」也匹配RedirectMatch的條件和文件夾再次追加(又一次,又一次......)

因此你可能需要像這樣(未經):

RewriteEngine On 
RewriteCond %{REQUEST_URI} !^/folder/ 
RewriteRule (.*)\.html$ /folder/$1.html [R=301,L] 

的的RewriteCond應檢查URI不以/文件夾啓動且僅當這一條件得到滿足,則重寫規則將被檢查。

不幸的是,我目前還沒有任何Apache安裝可用於測試這些事情,所以您可能必須自己嘗試。但我希望你明白了。

0

如果你的舊的HTML文件的根,我建議如下:

RedirectMatch 301 ^([^/]+)\.html$ http://www.domain.com/folder/$1.html