我有一个从不同的博客平台转换为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段中。
答案 0 :(得分:1)
尝试:
RewriteCond %{QUERY_STRING} ^404(%3B|;) [NC]
RewriteRule ^ http://www.example.com/general/404/? [L,R=301]