包括并排除Mod-Rewrite的Regexp



我想将访问重定向到我的URL的一个通过mod-Rewrite,只有当请求没有我的网站作为推荐人,但我想排除带有参数的特定URL。

这是我今天的规则(适用于重定向):

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_METHOD} GET
    RewriteCond %{REQUEST_URI} .*profile/login*
    RewriteCond %{HTTP_REFERER} !^http(s)?://example.com(/)?.*$      [NC]
    RewriteCond %{HTTP_REFERER} ^$
    RewriteRule ^(.*)$ https://example.com/ [R=307,L]
</ifModule>

但我希望以下URL不被重定向:

我不知道查询字符串值,只有查询字符串名称。

如何排除规则的那些URL?

谢谢,

问:

gv

我一直在.htaccess文件中使用以下条件来排除具有特定查询字符串参数和值的URL。

rewriteCond%{query_string}!

考虑您的重写规则,我会添加一条新行以检查%{query_string}条件如下:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_METHOD} GET
    RewriteCond %{REQUEST_URI} .*profile/login*
    RewriteCond %{HTTP_REFERER} !^http(s)?://example.com(/)?.*$      [NC]
    RewriteCond %{QUERY_STRING} !(^|&)rcp_action=lostpassword_reset($|&)
    RewriteCond %{HTTP_REFERER} ^$
    RewriteRule ^(.*)$ https://example.com/ [R=307,L]
</ifModule>

在您的情况下,您需要用参数名称 my_param替换rcp_action,以及lostpassword_reset通过您的参数值my-param-value

我已经在我自己的网站slidemodel中对此进行了测试,以根据查询字符串参数将用户重定向到维护页面。

最新更新