301 从带有 GET 参数的 URL 重定向到主页

Posted

技术标签:

【中文标题】301 从带有 GET 参数的 URL 重定向到主页【英文标题】:301 redirect from URL with GET-parameters to the homepage 【发布时间】:2021-12-28 21:54:09 【问题描述】:

我有一个使用 Joomla 1.5 的旧网站。它与 GET 参数有一些奇怪的链接,如下所示:

http://www.primavista.ru/images/stories/catalog/?rand=1186511674
http://www.primavista.ru/images/stories/catalog/?rand=145388433
http://www.primavista.ru/images/stories/catalog/?rand=1553907057
http://www.primavista.ru/images/stories/catalog/?rand=1563973527
http://www.primavista.ru/images/stories/catalog/?rand=1981273478
http://www.primavista.ru/images/stories/catalog/?rand=2139631800
http://www.primavista.ru/images/stories/catalog/?rand=366928750
http://www.primavista.ru/images/stories/catalog/?rand=524689684
http://www.primavista.ru/images/stories/catalog/?rand=569077423
http://www.primavista.ru/images/stories/catalog/?rand=573405687
http://www.primavista.ru/images/stories/catalog/?rand=879649167

我想将这些链接重定向到主页。 我在 .htaccess 中尝试了一些不同的指令:

RewriteCond %QUERY_STRING ^/images/stories/catalog/?rand=([0-9]*)$
RewriteRule ^(.*)$ https://primavista.ru/? [R=301,L]

RewriteCond %QUERY_STRING ^/images/stories/catalog/?rand=(.*)$
RewriteRule ^(.*)$ https://primavista.ru/? [R=301,L]

RewriteCond %QUERY_STRING (^|&)(rand)=[^&]+ [NC]
RewriteRule ^images/stories/catalog(/.*)?$ https://primavista.ru/? [R=301,L,NC]

但是没有人不工作。也许这里有人可以帮助我。谢谢

【问题讨论】:

将不良 URL 重定向到主页对 SEO 不利或不利。它们应该返回“404 Not Found”或“410 Gone”状态,最好带有自定义错误页面,解释它们不再可用的原因并列出替代方案。 也许你是对的。但是我怎样才能使重定向有效? 你不应该做这样的重定向,所以不要尝试这样做。 但我真的需要从这些链接进行重定向 你能退后一步解释一下这个重定向的目的吗? 【参考方案1】:

这可能就是你要找的:

RewriteEngine on
RewriteCond %QUERY_STRING rand=\d+
RewriteRule ^/?images/stories/catalog/?$ / [R=301,L]

最好从R=302 临时重定向开始,然后只将其更改为R=301 永久重定向,您对所有内容都感到满意。这可以防止客户端出现令人讨厌的缓存问题...

更新: 您在下面的评论表明您实际上要求删除重定向请求中的 GET 参数,这是您之前从未提到过的......

您可以为此使用额外的 QSD 标志:

RewriteEngine on
RewriteCond %QUERY_STRING rand=\d+
RewriteRule ^/?images/stories/catalog/?$ /? [R=301,QSD,L]

【讨论】:

抱歉,无法正常工作 “不工作”到底是什么意思?你会得到意想不到的回应吗?完全没有反应?一个错误?宇宙会内爆吗? 我在首页有重定向,但是 GET-parametr 存在 您之前从未提到过该参数的问题。如果问题只是删除该参数,请尝试使用我作为 UPDATE 添加到上述答案的变体。 谢谢,我试过了,但重定向后我会看这个网址:primavista.ru/?rand=1186511674

以上是关于301 从带有 GET 参数的 URL 重定向到主页的主要内容,如果未能解决你的问题,请参考以下文章

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

301 基于 .htaccess 中的 GET 变量重定向 URL

301 重定向 GET 参数

301 将带有特殊字符的 URL 重定向到主页 htaccess

旧到新的 301 重定向参数以实现更好的 Google 迁移?

使用获取参数的 Apache 301 重定向