
[英]Need help redirecting one website URL to another with apache2 and .htaccess
[英]Need help for redirecting encoded URL with htaccess
我需要从
https://www.example.com/%3fetcc_cmp%3dgmb%26etcc_med%3dseo
至
https://www.example.com/?etcc_cmp=GMB&etcc_med=SEO
而且我找不到可行的解决方案。
以下根本不起作用:
Redirect permanent /%3fetcc_cmp%3dgmb%26etcc_med%3dseo https://www.example.com/?etcc_cmp=GMB&etcc_med=SEO
如何用.htaccess
解决这个问题?
Redirect permanent /%3fetcc_cmp%3dgmb%26etcc_med%3dseo https://www.example.com/?etcc_cmp=GMB&etcc_med=SEO
如评论中所述, Redirect
指令与 URL 解码(即 %-解码)的 URL 路径匹配,因此您需要将其重写如下:
Redirect 302 /?etcc_cmp=gmb&etcc_med=seo https://www.example.com/?etcc_cmp=GMB&etcc_med=SEO
我将建议使用反向引用(使用RedirectMatch
指令代替)来捕获需要成为查询字符串的 URL 路径,但似乎源和目标不一样(在 URL 参数的情况下不同值)。
请注意,如果您有现有的 mod_rewrite ( RewriteRule
) 指令,那么您可能需要使用 mod_rewrite 来避免冲突。
注意:您不能在.htaccess
服务器上的 .htaccess 中执行此操作,因为?
(编码为%3f
)在 Windows 文件名中是不允许的。 在.htaccess
能够处理请求之前,您将收到 403 Forbidden。 在 Windows 上,您需要直接在服务器配置中执行此操作(在请求映射到文件系统之前)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.