Apache 2.4 精确重定向匹配字符串

Posted

技术标签:

【中文标题】Apache 2.4 精确重定向匹配字符串【英文标题】:Apache 2.4 exact redirection matching strings 【发布时间】:2021-03-31 05:57:38 【问题描述】:

我有一个网址: https://www.example.com/login/login.cgi?user=option

想要完全匹配 login.cgi

如果用户点击https://www.example.com/login/login.cgi 需要重定向到外部站点说www.redirect.com

如果有人点击https://www.example.com/login/login.cgi?user=option,它不会导致任何重定向。

我尝试了查询字符串的各种选项,并且重写规则似乎不起作用。

我尝试使用:

RewriteEngine On
RewriteCond %QUERY_STRING ^login.cgi$
RewriteRule ^login/$   https://www.redirect.com? [R=302,L]

【问题讨论】:

【参考方案1】:

这应该适合你。

RewriteEngine on

RewriteCond %QUERY_STRING ^$
RewriteRule ^/?login/login\.cgi$ https://example.com [R,L]

这会将yoursite.com/login/login.cgi 重定向到example.com

条件RewriteCond %QUERY_STRING ^$ 匹配empty querystring 意味着当URI 为/login/login.cgi 且没有任何查询字符串时,将应用Rewriterule

RewriteRule 模式开头的/? 使得可以在server.confightaccess 两种上下文中使用规则。

【讨论】:

@vins.vini 欢迎您!很高兴我能帮上忙。干杯:) @AmitVerma,嘿,阿米特兄弟,您好!!很抱歉,如果我在这里打扰您,请您看看回复***.com/a/65455070/5866580 一次,如果这对您来说很好:) 谢谢您一如既往的指导欢呼:)

以上是关于Apache 2.4 精确重定向匹配字符串的主要内容,如果未能解决你的问题,请参考以下文章

apache 2.4中的htaccess重定向301不起作用

Apache 2.4 将 https 重定向到另一个端口

Apache 2.4 将本地虚拟主机重定向到 https 而不是 http

Linux文件管理重定向和管道

如何在 apache 2.4 RewriteRule 中使用发布数据规则编写替换和重定向 url(两者同时)?

如何在 Apache 2.4 中重定向 /path/variables/ 以重写为 /index.php/path/variables/?