Zur Navigation

Doppelpunkte aus url entfernen und omleiten

1 Oliver (Gast)

Hallo Jörg, hallo @all!

Ich habe einige Probleme, die ich allein wohl nicht lösen kann.

Ich möchte URL vin einer Domain zu einer neuen Domain auf https umleiten.
Die URLs haben alle am ENDE 2 Doppelpunkte, gefolgt von einer Zahlenkette.
Es gibt aber auch URLS mit 3 Doppelpunkten und Ziffern am Ende, diese sollen nicht umgeschrieben werden. Ausgangspunkt:

http://www.example.org/das-ist-1-von-vielen::123.html

Ich möchte diese URLs nun von den 2 Doppelpunkten und der nachfolgenden Zahlenkette befreien und dann exakt so an eine neue Domain mit https weiterleiten,

So soll die URL vor der Weiterleitung aussehen:

http://www.example.org/das-ist-1-von-vielen.html

Mit
#RewriteCond %{REQUEST_URI} (.*)::(.+)\.html$
#RewriteRule ^(.*)::$ https://www.example.de/$1 [R=301,L]

funktioniert leider gar nix. ^^

Hat jemand eine Idee?

Danke Euch!

Gru0 Oliver

03.07.2015 01:19

2 Oliver (Gast)

Ich nochmal ... ^^

Also mit:
RewriteRule ^(.+)::([0-9]+).html$ https://www.example.de/$1.html [L,R=301]

.. funktioniert das schon etwas, allerdings werden vermutlich durch das ^ auch die Seiten mit den 3 Doppelpunkten erfasst. :( Die sollen aber nicht ... ^^

Wie kann ich das ausschließen?

Danke @all!

Oliver

03.07.2015 01:54

3 Jörg Kruse

Probier mal so:

RewriteRule ^(.+[^:])::[0-9]+\.html$ https://www.example.de/$1.html [L,R=301]

03.07.2015 09:37 | geändert: 03.07.2015 09:38

4 Oliver (Gast)

Hallo Jörg,

vielen Dank, ich werde das dann gleich einmal testen! ;)

Gruß
Oliver

03.07.2015 21:07

5 Oliver (Gast)

Test erfolgreich! Naja, das eine gelöst, neue Probleme (Fragen da ...) :(

Wie kann ich aus einer URL nach dem Schema:
http://www.example.de/KATEGORIE-1/KATEGORIE-2/hier-dann-das-Ziel.html

... nur die letzte Ebene, also 'hier-dann-das-Ziel.::1234.html' heraus filtern und entsprechend weiterleiten ? Dabei soll ebenfalls hier-dann-das-Ziel.::1234.html nur Kleinbuchstaben haben ...

Gruß
Oliver

03.07.2015 21:21

6 Jörg Kruse

Zitat von Oliver
Wie kann ich aus einer URL nach dem Schema:
http://www.example.de/KATEGORIE-1/KATEGORIE-2/hier-dann-das-Ziel.html

... nur die letzte Ebene, also 'hier-dann-das-Ziel.::1234.html' heraus filtern und entsprechend weiterleiten ?

Die Beispiel-URL enthält keinen String ".::1234"?

Dabei soll ebenfalls hier-dann-das-Ziel.::1234.html nur Kleinbuchstaben haben ...

Meinst du das bezogen auf die Ziel-URL - also dass aus dem großen Z ein kleines wird?

Vielleicht kannst du zum besseren Verständnis ein Beispiel mit Ursprungs- und Ziel-URL geben?

04.07.2015 13:14

7 Oliver (Gast)

Hallo Jörg,

korrekt von Dir erfasst, schlecht von mir erklärt .. °°

Korrekt, die Ursprings URL kann so aussehen (2 Doppelpunkte + Ziffern + Groß- Kleinschreibung):
http://www.example.de/KATEGORIE-1/KATEGORIE-2/Hier-dann-das-Ziel::1234.html

Die Ziel URL sollte dann entsprechend nur noch so aussehen: (alles in Kleinschreibung, ohne Doppelpunkte und dahinter angeführten Ziffern
hier-dann-das-ziel.html

Gruß und Danke!
Oliver

05.07.2015 22:52

8 Jörg Kruse

Um Groß- in Kleinbuchstaben umzuwandeln, braucht es eine RewriteMap Direktive, mit der eine tolower Funktion definiert werden kann:

RewriteMap tolower int:tolower

... die, dann in der .htaccess Datei genutzt werden könnte:

RewriteRule ^.+/([^/]+[^:/])::[0-9]+\.html$ https://www.example.de/${tolower:$1}.html [L,R=301]

Allerdings kommt die RewriteMap Direktive nicht in der .htaccess Datei zum Einsatz, sondern in der VirtualHost-Konfiguration - man benötigt hierzu also schreibenden Zugriff auf die Webserver-Konfiguration.

Alternativ könntest du auf ein Weiterleitungs-Script weiterleiten, in welchem z.B. die PHP-Funktion strtolower() zum Einsatz kommt

RewriteRule ^.+/([^/]+[^:/])::[0-9]+\.html$ https://www.example.de/redirect.php?file=$1 [L,R=301]

redirect.php:
<?php

header("HTTP/1.1 301 Moved Permanently"); 
header("Location: http://www.example.de/" . strtolower($_GET['file']) . ".html"); 

?>

06.07.2015 15:02

9 Oliver (Gast)

Hallo Jörg,

vielen Dank für Deine Hilfe! Es funktioniert! :)

Gruß Oliver

06.07.2015 17:21

Zum Schreiben einloggen

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]