2016-08-05 13 views
0

Ich habe kürzlich alle meine WordPress Blog URLs geändert, um Jahr, Monat und Datum NICHT zu enthalten.Wie kann ich nur Nummern in einer RegEx Redirect-Bedingung zielen?

Anstatt einzelne Umleitungsregeln zu erstellen, möchte ich RegEx verwenden, um nur eine Platzhalterregel zu erstellen.

Also von URLs wie http://www.example.com/blog/2015/01/01/blog-title/ zu http://www.example.com/blog/blog-title/ zu gehen.

Ich muss in der Lage sein zu erkennen, dass Zahlen nach/Blog/eingegeben werden, um andere URLs, die ich habe, nicht zu stören. So

Ich habe versucht, diese Regel in meiner Umleitung Plugin eingeben:

Quelle URL: /blog/^[0-9]*$/^[0-9]*$/^[0-9]*$/(.*) Ziel-URL: /blog/$1/

Aber dies scheint nicht gar zu umleiten, so dass die Quelle nicht ist erkannt werden. Welche Regel sollte ich verwenden, um eine Ziffer nach dem/blog/im Format JJJJ/MM/TT zu finden?

Antwort

0

Sie müssen /, und die $ ist vom Ende der Zeichenfolge passend. Sie müssen also so etwas wie

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

Dies sollte den Austausch tun (erzeugt durch regex101):

$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); 

Ausgang:

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

Sie können diese Umleitung Regel verwenden nur unter RewriteEngine On line:

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