我想将访问重定向到我的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中对此进行了测试,以根据查询字符串参数将用户重定向到维护页面。