我需要从 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(临时)重定向进行测试,以避免潜在的缓存问题。并且您需要在测试之前清除浏览器缓存。