0

很简单,我试图将特定页面重定向到我的 404 页面。

我正在通过正则表达式执行此操作。.htaccess 和 mod_rewrite 的超级新手。

基本上,我正在尝试将特定格式的所有页面发送到我的 404。例如:

http://mydomain.com.au/hello.html?wvsessionid=847180243
http://www.mydomain.com.au/gadfg.html?wvsessionid=dsvf8ya87adfg.744

以上所有页面都应该转到我的404页面。

这是我想出的,虽然它根本不起作用。不返回内部错误或任何东西,它只是让页面仍然可以查看。不知道为什么,因为我还是正则表达式的新手。

RewriteCond %{HTTP_HOST} ^www\.mydomain\.com\.au
RewriteRule ^/?(.*)/(wvsessionid)$ /$1.html?wvsessionid=$2 [L,R=404]

有谁知道我该如何解决这个问题以使其工作?

4

1 回答 1

1

您无法匹配?重写规则中的查询字符串( 之后的所有内容)。您需要%{QUERY_STRING}在重写条件下与 var 匹配:

RewriteCond %{HTTP_HOST} ^www\.mydomain\.com\.au [NC]
RewriteCond %{QUERY_STRING} (^|&)wvsessionid=
RewriteRule !^/404.html - [L,R=404]
于 2013-10-10T02:45:10.960 回答