0

如果在 REQUEST_URI 中包含“/login”字符串,则 Apache 指令成功地将 Web 应用程序 URL 重定向到帮助页面。这适用于如下的单个指令。

RedirectMatch 301 "^(.*)" "https://x.y.com/help-url/"

但是,如果“REQUEST_URI”包含字符串,我不想重定向到帮助页面login?next=/scm

我修改/添加了如下指令,但它没有按预期工作。

<LocationMatch "^/login">
    <If "%{REQUEST_URI} =~ m#/scm#">
        #Do nothing
    </If>
    <Else>
        RedirectMatch 301 "^(.*)" "https://x.y.com/help-url/"
    </Else>
</LocationMatch>
4

1 回答 1

0

为什么不只是?

RewriteEngine on
RewriteCond %{QUERY_STRING} !^next=/scm$
RewriteRule ^/login.+?/scm https://x.y.com/help-url/ [R,L]

我们检查是否没有发送好的查询字符串,在这种情况下,我们将您要检查的路径重定向到帮助 url。

请注意,如果您需要不同的检查,您可以根据需要添加 rewriteconds

于 2020-08-29T13:29:20.073 回答