2017-03-16 1 views
0

Ich ändere eine Website-Struktur, und jetzt, um alle 1000 Live-Links zu halten, die ich im Internet auf die richtige Seite zeigen, versuche ich zu erstellen htaccess-Regel, die eine automatische Umleitung vornimmt. Also im Grunde eine Regel, die URLs wie folgt transformiert:Dynamische Htaccess zum Umleiten mehrerer URLs mit Zahlen, Buchstaben und Bindestrichen

mysite.pt/web/pt/variable-directory/variablenumber-string-to-keep.html 

In:

mysite.pt/string-to-keep 

Das Problem ist, dass ich nicht in der Lage eine dynamische Regel zu erstellen, die alle URLs abfängt. Ich weiß nicht viel über reguläre Ausdrücke (was vielleicht hier zutreffen würde?).

Unten ist, wo ich gerade bin, eine statische und unvollständige Regel.

//Rewrite to www 
Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^mysite.pt/[nc] 
RewriteRule ^(.*)$ http://www.mysite.pt//$1 [r=301,nc] 

//301 Redirect Old File 
Redirect 301 web/pt/variable-directory/variablenumber-string-to-keep.html string-to-keep/ 

Der Start "web/pt /" und der letzte ".html" ist immer gleich. "Variable-Verzeichnis" (die Länge und Anzahl der Wörter variiert) und "VariableNumber" (einzelne Zahl, kann bis 9999 gehen) ändert sich von Seite zu Seite.

Ich versuche, diese Elemente und die zusätzlichen Strich nach "variablenumber" zu entfernen, nur die "String-to-halten" nach mysite.pt/ zu halten

"string-to-halten" ändert sich auch in Länge und Anzahl der Wörter.

Wie kann ich das erreichen? Gibt es einen Weg?

Antwort

0

Redirect nicht unterstützt Regex und Sie können eine generische Umleitung Regel wie diese mod_rewrite mit verwenden:

Options +FollowSymLinks 
RewriteEngine on 

RewriteCond %{HTTP_HOST} ^mysite\.pt$ [NC] 
RewriteRule^http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,NE,L] 

RewriteRule ^web/pt/[^/]+/\d+-(.+)\.html$ /$1 [L,NC,R=301,NE] 
+0

tyvm für Ihre Antwort! Nur eine Frage bezüglich des Codes, und ich hoffe, es macht dir nichts aus, dass ich das frage, bevor ich es richtig teste, aber ich verirre mich mitten in der letzten Zeile: Betrachtet es die "variableNummer" und den Strich direkt danach Gut? Vielen Dank – Tiago

+0

'\ d + -' wird mit einer beliebigen Nummer gefolgt von einem Bindestrich übereinstimmen – anubhava

+0

Hat diese Regel funktioniert? – anubhava

Verwandte Themen