1

将 Wordpress 站点迁移到新版本后,我需要捕获许多旧 URL 并将它们重定向到新站点上的相同内容。问题是旧站点有很多带有 ascii 编码字符的 URL,而 Wordpress 在当前站点上已将它们剥离。例如:

/blog/uncategorized/germany%E2%80%99s-ageing-population-working-longer-working-better.html

将重定向到:

/blog/germanys-ageing-population-working-longer-working-better/

任何人都可以提供一个可以删除 ascii 编码字符的正则表达式吗?

4

2 回答 2

3

为了匹配编码字符,您将使用以下正则表达式模式:

%[A-Z0-9]{2}

您如何执行替换将取决于您使用的语言/工具。

于 2013-11-12T16:40:06.223 回答
1

您必须在此处匹配请求,因为使用重定向和重写规则,在应用模式之前对 URI 进行解码。这意味着您将匹配诸如â而不是编码字符串之类的东西。所以你会想要这样的东西:

RewriteEngine On
RewriteCond %{THE_REQUEST} \ /blog/([^\?\ ]*)\%[A-Z0-9]{2}([^\?\ ]*)
RewriteRule ^ /blog/%1%2 [L,R=301,NE]
于 2013-11-12T17:10:04.663 回答