首页 > 解决方案 > Apache 2.4 精确重定向匹配字符串

问题描述

我有一个网址: 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]

标签: redirectquery-stringhttpd.confapache2.4

解决方案


这应该适合你。

RewriteEngine on

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

这将重定向yoursite.com/login/login.cgiexample.com.

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

RewriteRule 模式的/?开头使得可以在两个上下文中server.config或在htaccess.


推荐阅读