Zur Navigation

Weiterleitung per RewriteRule auf #Anker

1 elotse

Ich versuche eine alte Seite auf eine neue Seite direkt zu dem Anker weiterzuleiten.
Die Weiterleitung zu der Seite funktioniert, aber nicht der Sprung zu dem Anker
Hier ist der Code:
RewriteRule ^toernbericht-2007-syros-ermoupolis/$  /toern-nordkykladen/#ermoupolis/ [L,R=301,NE]

Vorab vielen Dank
elotse

20.04.2020 17:51

2 Jörg

Mit dem "NE"-Flag sollte der Sprung eigentlich funktionieren. Der Anker lautet "ermoupolis/" (mit Slash am Ende)? und was steht nach der Weiterleitung im Adressfeld des Browsers?

20.04.2020 20:45

3 elotse

Das Problem liegt in dem Slash, ich bekomme es aber nicht gelöst, deshalb hier eine ausführliche Beschreibung:

Die URL der alten Seite von welcher umgeleitet werden soll lautet:
https://www.kk4you.de/toernbericht-2007-syros-ermoupolis/

Die URL der Seite zu welcher weitergeleitet wird
https://www.kk4you.de/toern-nordkykladen/


Dort gibt es ein Inhaltsverzeichnis mit dem Menüpunkt Ermoupolis
Im Code steht dazu:
<a href="#ermoupolis">Ermoupolis</a>
Wird diese Punkt angewählt funktioniert der Sprung zur Sprungmarke mit folgendem Code:
<a id="ermoupolis"></a>
Die im Browser angezeigt URL lautet dann:
https://www.kk4you.de/toern-nordkykladen/#ermoupolis


Die Lösung ist die Entfernung des Slash am Ende!!!
Leider funzt dies aber nicht

Verwende ich folgenden Code ohne Slash erfolgt gar kein Sprung
RewriteRule ^toernbericht-2007-syros-ermoupolis/$  /toern-nordkykladen/#ermoupolis [L,R=301,NE]

Verwende ich statt dessen folden Befehl mit Redirect
Redirect 301 /toernbericht-2007-syros-o-phoinikas-nach-mykonos  https://www.kk4you.de/toern-nordkykladen/#syros-mykonos
Wird automatisch das Slash Zeichen gesetzt????

Anmerkung: Die Seite wird mit WordPress betrieben und alle URL’s sind so organisiert, dass am Ende ein Slash
Am Ende der htaccess steht dazu folgender Code welcher von Wordpress vorgegeben ist:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Liegt dort eventuell das Problem??


21.04.2020 10:51

4 Jörg

Verwende ich folgenden Code ohne Slash erfolgt gar kein Sprung
RewriteRule ^toernbericht-2007-syros-ermoupolis/$  /toern-nordkykladen/#ermoupolis [L,R=301,NE]

Die Reihenfolge ist hier noch wichtig, die Weiterleitung sollte oberhalb des WordPress-Codes stehen.

Wenn kein Sprung erfolgt: steht trotzdem die korrekte URL in der Adresszeile oder steht da irgendwas anderes?

21.04.2020 12:58

5 elotse

Danke, es lag an der Reihenfolge der RewriteRule.

Es funtioniert, den WP Code habe ich nun ganz ans Ende gestellt.

Mit Redirect 301 funzt es nicht, ich denke es liegt daran, dass ich dort das Flag NE nicht setzten kann. Dies war auch der Grund RewriteRule zu verwenden

Vielen Dank
elotse

21.04.2020 17:46

6 Jörg

Mit Redirect 301 funzt es nicht, ich denke es liegt daran, dass ich dort das Flag NE nicht setzten kann.

Ja, das ist der eine Grund. Der andere Grund ist, dass mit dem Flag L in der RewriteRule verhindert werden kann, dass bei einem Match folgende WordPress Regeln noch ausgeführt werden (weswegen auch die Reihenfolge wichtig ist)

21.04.2020 22:21

7 elotse

Verstanden, nochmals Danke

22.04.2020 11:15

Beitrag schreiben (als Gast)

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





[BBCode-Hilfe]