0

我有一个从不同的博客平台转换为 ExpressionEngine 的网站,并且我从以前索引的 url 中得到了一堆爬网错误,现在导致错误页面,因为 ExpressionEngine 不允许在 url 中使用某些字符。

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

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

我能够使用以下代码重定向第三个示例中的 url:

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

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

4

1 回答 1

1

尝试:

RewriteCond %{QUERY_STRING} ^404(%3B|;) [NC]
RewriteRule ^ http://www.example.com/general/404/? [L,R=301]
于 2013-07-01T18:47:04.007 回答