如何在htaccess重定向的查询字符串中定位具有特定字符的URL

时间:2013-07-01 18:14:47

标签: .htaccess redirect query-string

我有一个从不同的博客平台转换为ExpressionEngine的网站,我从以前编入索引的网址中获得了一堆抓取错误,现在导致错误页面,因为ExpressionEngine不允许某些网址中的字符。

导致错误的网址遵循以下三种模式之一:

http://www.example.com/general/404/?404%3Bhttp://old.example.com:80/old-blog/random/segments

http://www.example.com/blog/?404%3Bhttp://old.example.com:80/old-blog/random/segments

http://www.example.com/blog/Default.aspx?404;http://old.example.com:80/old-blog/random/segments

我可以使用以下代码重定向第三个示例中的网址:

RewriteRule ^blog/Default.aspx?/?$ http://www.example.com/general/404/? [L,R=301]

有没有办法可以在他们点击EE并将其重定向到我的404页面之前用htaccess拦截其他URL:http:www.example.com/general/404/?我不确定如何专门针对他们,因为之前什么都没有?在查询字符串url段中。

1 个答案:

答案 0 :(得分:1)

尝试:

RewriteCond %{QUERY_STRING} ^404(%3B|;) [NC]
RewriteRule ^ http://www.example.com/general/404/? [L,R=301]