繁体   English   中英

需要帮助使用 htaccess 重定向编码的 URL

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM