将Wordpress网站迁移到新版本后,我需要捕获大量旧网址并将其重定向到新网站上的相同内容。问题是旧网站有很多带有ascii编码字符的网址,Wordpress已将其删除到当前网站上。例如:
/blog/uncategorized/germany%E2%80%99s-ageing-population-working-longer-working-better.html
将重定向到:
/blog/germanys-ageing-population-working-longer-working-better/
任何人都可以提供一个可以删除ascii编码字符的正则表达式吗?
答案 0 :(得分:3)
为了匹配编码字符,您将使用以下正则表达式模式:
%[A-Z0-9]{2}
如何执行替换将取决于您使用的语言/工具。
答案 1 :(得分:1)
您必须在此处与请求进行匹配,因为使用重定向和重写规则,URI在应用模式之前已解码。这意味着您将匹配â
之类的内容而不是编码字符串。所以你会想要这样的东西:
RewriteEngine On
RewriteCond %{THE_REQUEST} \ /blog/([^\?\ ]*)\%[A-Z0-9]{2}([^\?\ ]*)
RewriteRule ^ /blog/%1%2 [L,R=301,NE]