1

我有一個子文件夾中的所有靜態HTML文件重定向到新的位置(舊網站的Drupal的版本):重定向一個子文件夾在同一文件中的所有文件到一個新的服務器

oldsite.net/topfolder/subx => newsite.net/subx 

但並不是所有文件都在新網站上存在。 丟失的文件應該被重定向到主頁面,在新的子文件夾

用一個例子(請備註目標網址沒有名「.html」擴展名):

oldsite.net/topfolder/subx/file1.html redirect to newsite.net/subx/file1 
oldsite.net/topfolder/subx/file2.html redirect to newsite.net/subx/file2 

oldsite.net/topfolder/subx/missing1.html redirect to newsite.net/subx/mainpage 
oldsite.net/topfolder/subx/missing2.html redirect to newsite.net/subx/mainpage 

根的.htaccess,我可以寫爲每個文件類似的東西:

redirect 301 /topfolder/subx/file1.html http://www.newsite.net/subx/file1 

和丟失的文件

redirect 301 /topfolder/subx/missing1.html http://www.newsite.net/subx/mainpage 

但是隨着越來越多的300個文件,它是一個大量的工作。

我不太擅長重寫規則,我試圖編寫一個規則,但它似乎不工作。

這應該對現有的文件工作(我沒噴試了一下):

RewriteRule /topfolder/subx/^ (.*)\.html$ http://www.newsite.net/subx/$1 [R=301,L] 

但是對於丟失的文件?上述規則是否正確?

有什麼建議嗎? 謝謝你的回覆。

回答

1

啓用mod_rewrite的,並通過httpd.conf的.htaccess,然後把這個代碼在你.htaccessDOCUMENT_ROOT目錄的oldsite

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteRule ^topfolder/(subx/[^.]+)\.html$ http://www.newsite.net/$1 [R=302,L,NC] 

and.htaccess通過httpd.conf啓用mod_rewrite的,然後把這個代碼在你.htaccessDOCUMENT_ROOT目錄的newsite

# If the request is not for a valid directory 
RewriteCond %{REQUEST_FILENAME} !-d 
# If the request is not for a valid file 
RewriteCond %{REQUEST_FILENAME} !-f 
# If the request is not for a valid link 
RewriteCond %{REQUEST_FILENAME} !-l 
# not found then strip out query string and redirect to mainpage 
RewriteCond %{QUERY_STRING} ^new=1$ [NC] 
RewriteRule^subx/mainpage? [R=301,L] 

# otherwise just strip out query string 
RewriteCond %{QUERY_STRING} ^new=1$ [NC] 
RewriteRule^%{REQUEST_URI}? [R=301,L] 
+0

這絕對是一個好主意,但在新網站上,我希望擁有自己的404頁面。 (我的主頁是「subx」子文件夾的主頁...我的帖子中不太清楚) – gingo 2013-02-27 18:12:24

+0

好的,現在請看我的編輯答案。 – anubhava 2013-02-27 19:02:49

+0

它在我的本地服務器上工作,但不在共享生產服務器上。我不知道爲什麼,只是沒有應用oldsite的規則(但是其他規則可行,即mod_rewrite處於活動狀態)。無論如何謝謝(也許我會在每個單一文件上使用重定向301)。 – gingo 2013-02-28 06:49:09

相關問題