2016-08-05 2 views
0

私は最近、年、月、日を含まないように、私のWordpressのブログのURLのすべてを変えました。RegExリダイレクト条件で数字だけをターゲットにするにはどうすればよいですか?

個別のリダイレクトルールを作成するのではなく、RegExを使用して1つのワイルドカードルールを作成したいと考えています。だから、http://www.example.com/blog/blog-title/http://www.example.com/blog/2015/01/01/blog-title/のようなURLからどこへ行く

私はそれは私が持っている他のURLに干渉しないために番号が/ /ブログの後に入力されていることを認識できるようにする必要があります。

だから、私はリダイレクトプラグインで、このルールを入力しようとした:

ソースURL:/blog/^[0-9]*$/^[0-9]*$/^[0-9]*$/(.*) ターゲットURL:/blog/$1/

しかし、これがすべてでリダイレクトしていないようですので、ソースではありませんが認識される。/blog /の後ろの任意の数字をyyyy/mm/dd形式で検索するにはどのようなルールを使用する必要がありますか?

答えて

0

/をエスケープし、$が文字列の最後から一致する必要があります。だから、これは(regex101によって生成された)の交換を行う必要があります

blog\/\d{4}\/\d{2}\/\d{2}\/(.*) 

ようなものが必要:

$re = "/blog\\/\\d{4}\\/\\d{2}\\/\\d{2}\\/(.*)/"; 
$str = "http://www.example.com/blog/2015/01/01/blog-title"; 
$subst = "blog/$1"; 

$result = preg_replace($re, $subst, $str, 1); 

出力:

http://www.example.com/blog/blog-title 
0

あなただけRewriteEngine On線の下に、このリダイレクトルールを使用することができます。

RewriteCond ^/blog/\d{4}/\d{2}/\d{2}/(.*)$ [NC] 
RewriteRule^/blog/%1 [L,NE,R=301] 
関連する問題