請注意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 *。因爲這是一個「萬無一失」的規則,就像是最後的手段,它需要在所有常規重定向之後。
你能證明你有什麼嗎?這可能會使回答更容易 –
對不起,由於我的代表到目前爲止我不能發佈任何額外的鏈接:(@JonLin似乎是在正確的軌道上,但 –
你可以編輯.htaccess文件到問題(如果它仍然是必要的。) –