.htaccess - .htaccess 附属链接的重写规则
问题描述
我有很多这种类型的链接:
https://example.com/?redirectTo=G04BIQ8LGG&redirect_prodid=xyz-G04BIQ8LGG
我需要重定向到亚马逊会员链接:
https://www.amazon.com/dp/G04BIQ8LGG?tag=mytag-21&linkCode=ogi&th=1&psc=1
从旧网址获取的唯一部分是产品代码(例如G04BIQ8LGG)
有人可以帮助我处理 .htaccess 规则和正则表达式吗?
谢谢!
解决方案
不幸的是,不,我对正则表达式不是很好。
正则表达式与链接问题中的非常相似。但是,在这种情况下,所需的 mod_rewrite 指令本身要简单得多。
例如:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^redirectTo=([^&]+)
RewriteRule ^$ https://www.amazon.com/dp/%1?tag=mytag-21&linkCode=ogi&th=1&psc=1 [NE,R=302,L]
我已将redirectTo
URL 参数锚定到查询字符串的开头,因为这就是它在您的示例中的显示方式。在链接的问题中,URL 参数可以出现在查询字符串中的任何位置,因为这似乎是该问题的要求。
由于 URL 参数值用于重定向 URL 的 URL 路径,因此需要NE
( noescape
) 标志来防止 % 编码的 URL 参数值在生成的重定向中被双重编码。(尽管如果此 URL 参数值从未经过 % 编码,则这不是问题 - 它不一定看起来会如此。)
推荐阅读
- python - 从/到文件导入和导出字典 - 没有 json 或模块
- python - 并行运行线程比在 python 中顺序执行需要更多时间
- r - 在函数中堆叠不同的数据帧
- shell - AWK 只打印有点的行
- google-oauth - 使用访问令牌/刷新令牌使 Google Calendar API 客户端库直接调用 API
- azure - 数据流执行中的感叹号
- c++ - c ++指针将结构新数组指向delphi到DLL函数
- java - Scala `Future.recoverWith` 相当于`CompletionStage`?
- java - 基于 java 流初始化一个字符串会导致一个空字符串
- javascript - 三个 js 无法读取 ShaderPass.js 中未定义的属性“原型”