Zur Navigation

.htaccess Weiterleitung per 301 alte auf neue Seite [4]

31 christa

Wie schaut denn die Weiterleitung in der .htaccess Datei aus?

RewriteRule ^index\.php$ http://example.com/verz/views.php?kat=viren&page=1 [R=301,L]

und wo befindet sich die .htaccess Datei, in /verz oder im Hauptverzeichnis?

index.php und .htaccess im Verzeichnis "/verz" liegend

06.04.2013 17:06

32 Jörg

Um http://example.com/verz/ (mit Slash am Ende) weiterzuleiten:

RewriteRule ^$ http://example.com/verz/views.php?kat=viren&page=1 [R=301,L]

http://example.com/verz (ohne Slash am Ende) müsstest du in der .htaccess Datei im Hauptverzeichnis weiterleiten:

RewriteRule ^verz$ http://example.com/verz/views.php?kat=viren&page=1 [R=301,L]

(vielleicht reicht aber auch schon ersteres, wenn der Server von sich aus von /verz auf /verz/ weiterleitet)

06.04.2013 17:19 | geändert: 06.04.2013 17:20

33 christa

Zitat von Jörg

vielleicht reicht aber auch schon ersteres, wenn der Server von sich aus von /verz auf /verz/ weiterleitet)

so ist es, er leitet /verz auf /verz/ weiter.

Die index.php muss ich aber separat umleiten, so wie gehabt

das ganze sieht dann so aus:

RewriteRule ^index\.php$ http://example.com/verz/views.php?kat=viren&page=1 [R=301,L]
RewriteRule ^$ http://example.com/verz/views.php?kat=viren&page=1 [R=301,L]

Jörg vielen Dank... wieder ein Treffer ins Schwarze

06.04.2013 17:39

34 christa

und wie leite ich den Inhalt der Seite http://example.com/verz/views.php weiter nach http://example.com/verz/views.php?kat=viren&page=1

Mit der .htaccess im Verzeichnis "verz" und folgendem Code

RewriteRule ^views\.php$ http://example.com/verz/views.php?kat=viren&page=1 [R=301,L]

erscheint, wenn ich im Chrome http://example.com/verz/views.php eingebe, folgender Fehler:

Die Webseite unter http://example.com/verz/views.php?kat=viren&page=1 hat zu viele Umleitungen erzeugt.

07.04.2013 09:57

35 Jörg

Nur weiterleiten, wenn der Query String leer ist:

RewriteCond %{QUERY_STRING} ^$
RewriteRule ^views\.php$ http://example.com/verz/views.php?kat=viren&page=1 [R=301,L]

07.04.2013 10:25

36 christa

ich leite nun die paar kanonischen intern um, beginnend mit der views.php.

RewriteCond %{QUERY_STRING} ^$
RewriteRule ^views\.php$ http://example.com/verz/views.php?kat=viren&page=1 [R=301,L]

funktioniert und ein paar weitere ebenfalls, danke Jörg für Deine Hilfe

07.04.2013 12:02

37 christa

im query_string befindet sich ein " * "

RewriteCond %{QUERY_STRING} ora=*&lim=15&off=0&order=ref%20desc&kate=1&style=link

damit wird aber die Seite nicht umgeleitet. Nehme ich in der Browseradresszeile das " * " heraus, funktioniert die Weiterleitung.

Muss ich das * Zeichen anders behandeln?

!!!hab´s gefunden!!!

RewriteCond %{QUERY_STRING} ora=\*&lim=15&off=0&order=ref%20desc&kate=1&style=link

funktioniert jedenfalls mit diese Auskommentierung,hoffe es sei so ok?

08.04.2013 09:14 | geändert: 08.04.2013 10:12

38 Jörg

Ja, alle Meta-Zeichen, darunter auch das "*", müssen mit einem Backslash maskiert werden, wenn sie das eigentliche Zeichen bezeichnen sollen:

https://joergs-forum.de/mod-rewrite-zeichen-escapen-t-48-1

"=*" hat andernfalls die Bedeutung 'kein oder mehrere aufeinanderfolgende "="'

08.04.2013 18:31 | geändert: 08.04.2013 18:32

1 Forenmitglied fand diesen Beitrag gut

39 christa

Zitat von Jörg
Ja, alle Meta-Zeichen, darunter auch das "*", müssen mit einem Backslash maskiert werden, wenn sie das eigentliche Zeichen bezeichnen sollen:

https://joergs-forum.de/mod-rewrite-zeichen-escapen-t-48-1

"=*" hat andernfalls die Bedeutung 'kein oder mehrere aufeinanderfolgende "="'

gut zu wissen, danke Jörg

08.04.2013 19:19

40 christa

Zitat von Jörg
Ein OR-Flag verknüpft eine Bedingung mit der folgenden:


RewriteCond %{QUERY_STRING} o_id=1009&order=(pr|refno%20abs)&ka=1&results=


so das Ganze läuft soweit bestens. Google hat aber noch eine zusätzliche Variante aus dem Ärmel geschüttelt die ich oben in den Code einpflegen möchte.

die folgende Version wird umgeleitet

RewriteCond %{QUERY_STRING} o_id=1009&order=(pr|refno%20abs)&ka=1&results=



aber die verkürzte Version fällt durchs Sieb

RewriteCond %{QUERY_STRING} o_id=1009&order=(pr|refno%20abs)&ka=1



Sicher kann man die beiden Ausdrücke nochmals zusammenfassen und damit die .htaccess etwas schonen.

10.04.2013 15:16