如何使用动态 URL 进行 301 重定向并为新 URL 保留一些价值

Posted

技术标签:

【中文标题】如何使用动态 URL 进行 301 重定向并为新 URL 保留一些价值【英文标题】:How to do 301 redirect with Dynamic URL and keep some value to new url 【发布时间】:2015-09-10 04:35:42 【问题描述】:

我在使用动态 URL 进行 301 重定向时遇到问题。我想将任何具有“pageId=xxxxxxxxx”的 URL 重定向到在新 URL 末尾附加“pageId=xxxxxxxxx”的新 URL。

例如,旧网址是

abc.co.uk/level1/level2/knife/page/190011770?temp=submitview&pageId=190011770&layout=1column

到新网址:

abc.co.uk/review?pageId=190011770

我尝试编写如下两条规则的重定向规则:

RewriteRule ^pageId=(.*)$ http://abc.co.uk/review?pageId=$1 [R=301,L]

RewriteCond %QUERY_STRING ^pageId=[0-9]*$
RewriteRule ^(.*)$ http://abc.co.uk/review?pageId=$1? [L,R=301]

但它们都不起作用。我得到了 HTTP 代码 200 而不是 301

请帮帮我。

【问题讨论】:

【参考方案1】:

为确保您没有重定向循环,您必须确保 URI 尚未“review”:

RewriteEngine On
RewriteCond %QUERY_STRING (^|&)pageId=([0-9]+)(&|$)  
RewriteRule ^(?!review)(.*) /review?pageId=%2 [NC,R,L]

【讨论】:

以上是关于如何使用动态 URL 进行 301 重定向并为新 URL 保留一些价值的主要内容,如果未能解决你的问题,请参考以下文章

对动态短网址使用 301/303/307 重定向

使用查询参数和 URL 中的 ~ 进行 301 重定向

IIS7 301 从 URL 列表重定向

如何正确进行 301 重定向

Magento 使用 302 重定向到基本 url,我如何让它使用 301

htaccess 重定向 301 + 重写冲突