2013-01-07 82 views
1

我無法找到任何人詢問或回答我的特定情況。htaccess將特定文件和文件夾重定向到新站點,並將其他任何內容重定向到新站點上的特定頁面

我正在將一個擁有大量靜態產品和信息頁的舊電子商務網站移動到安裝在新位置(位於根目錄中的新文件夾中)的新電子商務軟件包中。 http://domain.comhttp://domain.com/newstore

我知道我可以將整個網站重定向到新的位置,但因爲許多新網站從電子商務軟件動態運行和產品頁面的地址,甚至沒有接近,將無法正常工作舊的。

我已經使用RedirectMatch爲所有我知道需要重定向的產品頁面創建單獨的重寫,因此很好。現在我需要任何我可能錯過的頁面重定向到新商店的主頁,但我顯然無法重定向我不知道的東西。所以這是我的問題,現在如何讓我的遺留頁面重定向到主頁而不會破壞我已有的200個RedirectMatch規則?

+0

你能證明你有什麼嗎?這可能會使回答更容易 –

+0

對不起,由於我的代表到目前爲止我不能發佈任何額外的鏈接:(@JonLin似乎是在正確的軌道上,但 –

+0

你可以編輯.htaccess文件到問題(如果它仍然是必要的。) –

回答

1

請注意RedirectMatch是mod_alias,而不是mod_rewrite。當來自兩個模塊的指令被應用到相同的URI時,這兩個模塊並不總是很好地互相配合。沒有任何想法,您的網站是如何設置,有沒有辦法回答你的問題,但你可以通過嘗試這樣的事情* mod_rewrite的*:

RewriteEngine On 
# Check that the request isn't for an existing resource 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
# Check that the request isn't for the new store 
RewriteCond %{REQUEST_URI} !^/newstore 
# redirect to the new store 
RewriteRule^/newstore/ [L,R] 

這裏的理由是,如果要求不是現有頁面,圖像,腳本,這可能會導致404,如果該請求不適用於/newstore文件夾中的動態網站,則我們將其重定向到/newstore/文件夾。

但就像我說的,你有一些東西RedirectMatch指令和mod_alias並不總是與mod_rewrite很好玩。你可能需要將它們全部轉換成重寫規則,但它可能沒有必要。例如:

RedirectMatch 301 ^/old-path/old-page.html$ /newstore/?page=123 

將轉化:

RewriteRule ^/old-path/old-page.html$ /newstore/?page=123 [L,QSA,R=301] 

所有這些重寫規則**必須之前上面說的規則重定向所有404對/ newstore *。因爲這是一個「萬無一失」的規則,就像是最後的手段,它需要在所有常規重定向之後。

+0

如果我的理解是正確的,那會重定向找不到的東西 - 這很好 - 但我還需要其他任何我還沒有重定向的頁面。 –

+0

@LorenMcDonald如果你轉到那些其他頁面你還沒有重定向,你有沒有404? –

+0

我不知道,因爲我不知道什麼頁面不存在...不。有些是靜態頁面,看起來像舊網站,我們不是擔心保持,但我不知道可能會有什麼,我可以完全刪除舊網站的內容,但這不是我想要的 - 任何其他網頁,如果它們存在或沒有重定向,應該被重定向到新家頁。 –

相關問題