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

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 に答える