Htaccess 使用重定向 301 删除 URL 末尾的垃圾

Htaccess 使用重定向 301 删除 URL 末尾的垃圾

我需要从 URL 末尾删除“垃圾”。

我有超过 1000 个 URL,URL 末尾都有这个词:“卡片链接”。

卡片链接前的URL是动态的。

带垃圾的 URL 示例:

  • https://example.com/frases/f/como-fazer/Card%20link
  • https://example.com/frases/f/just-now/Card%20link
  • https://example.com/frases/f/mybag/Card%20link

最终网址:

  • https://example.com/frases/f/como-fazer/
  • https://example.com/frases/f/just-now/
  • https://example.com/frases/f/mybag/

答案1

https://example.com/frases/f/como-fazer/Card%20link

需要删除的(Card%20link又名“垃圾”)位于 URL 路径的末尾(而不是其他答案中提到的查询字符串)。

您可以使用 mod_rewrite 将其删除,位于根文件顶部附近.htaccess

例如:

RewriteEngine On

RewriteRule ^(.+/)?Card\slink$ /$1 [NC,R=301,L]

请注意,匹配的 URL 路径RewriteRule 图案已经进行了 % 解码(即 URL 解码),因此我们需要与文字进行匹配空间,而不是%20(编码的空间)。在上面的正则表达式中,简写字符类\s匹配任何空格字符。

正则表达式^(.+/)?Card\slink$匹配以 (不区分大小写)结尾的任何 URL 路径/card%20link,包括原本应该针对主页的请求(如果有的话,例如example.com/Card%20link)。

RewriteEngine如果该指令已在配置文件的其他地方出现,则无需重复该指令。(但为了便于阅读,该RewriteEngine指令应仅在文件顶部出现一次。)

您应该首先使用 302(临时)重定向进行测试,以避免潜在的缓存问题。并且您需要在测试之前清除浏览器缓存。

相关内容