简单地说,我正在尝试将特定页面重定向到我的404页面。
我通过正则表达式这样做。超级新的.htaccess和mod_rewrite。
基本上,我试图将特定格式的所有页面发送到我的404.例如:
http://mydomain.com.au/hello.html?wvsessionid=847180243
http://www.mydomain.com.au/gadfg.html?wvsessionid=dsvf8ya87adfg.744
以上所有页面都应该转到我的404页面。
这是我想出来的,尽管它根本不起作用。不返回内部错误或任何内容,它只是让页面仍然被查看。不确定为什么因为我还是regex的新手。
RewriteCond %{HTTP_HOST} ^www\.mydomain\.com\.au
RewriteRule ^/?(.*)/(wvsessionid)$ /$1.html?wvsessionid=$2 [L,R=404]
有没有人知道如何解决这个问题才能让它发挥作用?
答案 0 :(得分:1)
您无法在重写规则中与查询字符串(?
之后的所有内容)进行匹配。您需要在重写条件中匹配%{QUERY_STRING}
var:
RewriteCond %{HTTP_HOST} ^www\.mydomain\.com\.au [NC]
RewriteCond %{QUERY_STRING} (^|&)wvsessionid=
RewriteRule !^/404.html - [L,R=404]