301-Redirect

使用 mod_rewrite 或 RedirectMatch 將 oldfile.aspx?p=blah 重定向到 newfile.php,忽略 ?p=blah

  • February 17, 2011

我有一個站點,其中包含許多指向舊結構的傳入連結(已消失多年),隨著數據庫映射的更改,大量的 URL 變數不再相關。所以,我想重定向:

http://www.mysite.com/oldfile.aspx?p=1&c=2

到:

http://www.mysite.com/newfile.php

最後沒有查詢字元串。實際的查詢字元串各不相同 - 有數百個,但由於它們不再與特定情況匹配,我想將人們帶到他們正在尋找的內容的新索引頁面,這樣他們就可以找到它從那裡。

我目前使用:

RedirectMatch 301 ^/oldfile\.aspx$ /newfile.php

不過,這會使查詢重新結束。有人可以告訴我我需要的巫毒食譜嗎?

RewriteEngine on

RewriteRule ^oldfile.aspx*$ /newfile.php? [R]

如果您希望使用者看到 oldfile.aspx 並真正點擊 newfile.php 的話,這最終會導致在 url 中顯示 newfile.php

$$ L $$代替$$ R $$mod_rewrite 規則中的標誌。 在newfile.php 後面加問號?這麼老的字元串之後?迷路。

引用自:https://serverfault.com/questions/236747