簡體   English   中英

重定向301 /重寫難題

[英]Redirect 301 / Rewrite conundrum

在我的網站上,用戶可以添加需要重定向的各種URL。

例如; 來自:domain.com/oldpage/36/

對此:domain.com/newpage/47/

它們被添加到.htaccess中,如下所示:

Redirect 301 /oldpage/36/ /new-page/47/

但是當訪問舊頁面時,他們得到了這個:

domain.com/newpage/47/?pid=36&pagename=oldpage

我很確定這些重寫規則會導致這種困境:

RewriteRule ([^.]+)/([0-9]+)/$ index.php?pid=$2&pagename=$1
RewriteRule ([^.]+)/([0-9]+)/([^.]+) index.php?pid=$2&pagename=$1&vars=$3

但是,mod_rewrite東西不是我的強項,所以我不知道如何修復它。

有任何想法嗎 ?

既然你已經在使用mod_rewrite,我想你也應該使用重寫來重定向

RewriteRule /oldpage/36/ /new-page/47/ [R=301]

這將“重寫”從舊到新的URL,並將瀏覽器重定向到狀態碼為301新網址。 [R]指令意味着重定向,這也會阻止其他規則處理,因此只有在使用新網址從broswer發送新請求時才會處理其他規則。

添加一個? 使Rewrite不將查詢字符串添加到URL。

所以這應該工作:

Redirect 301 /oldpage/36/ /new-page/47/?

作為預防措施,您還可以將其添加到以下結尾:

RewriteRule ([^.]+)/([0-9]+)/$ index.php?pid=$2&pagename=$1?
RewriteRule ([^.]+)/([0-9]+)/([^.]+) index.php?pid=$2&pagename=$1&vars=$3?

但只有在他們需要的時候

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM