Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Mod_rewrite Syntax Problem - Fragezeichen

Mehrere Domains, Domain-Umzug, neue Dateinamen, 301/302
silent321
PostRank 3
PostRank 3
Beiträge: 73
Registriert: 13.01.2009, 17:39

Beitrag von silent321 » 13.01.2009, 17:42

Folgendes Soll bewirt werden:

www.example.com/beispiel.html?e

umgewandelt in

www.example.com/beispiel/


Ohne das ?e funktioniert dies einwandfrei:
RewriteRule ^(.*).html$ /$1/ [R=301]

Jedoch klappt es nicht mit dem ?e:

RewriteRule ^(.*).html?e$ /$1/ [R=301]



Kennt jemand von euch eine Antwort?

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Kristian
PostRank 9
PostRank 9
Beiträge: 1484
Registriert: 20.07.2005, 16:30

Beitrag von Kristian » 13.01.2009, 18:13

Hallo

Setze ein Backslash "\" vor das Fragezeichen um es zu maskieren.

Gruß
Kristian
Seo-Check Biete Links zu Schmuck und Hochzeit sowie Artikelplätze für Firmen allgemein.

ins0
PostRank 4
PostRank 4
Beiträge: 128
Registriert: 01.09.2008, 18:29

Beitrag von ins0 » 13.01.2009, 19:19

Kristian hat geschrieben:Hallo

Setze ein Backslash "" vor das Fragezeichen um es zu maskieren.

Gruß
Kristian
wird nicht gehen.

Code: Alles auswählen

	RewriteCond %{QUERY_STRING} ^&?e$
	RewriteRule ^(.+)\.html$ http://www.example.com/$1/? [L,R=301]
grüße ins0

silent321
PostRank 3
PostRank 3
Beiträge: 73
Registriert: 13.01.2009, 17:39

Beitrag von silent321 » 13.01.2009, 19:44

Hallo, Vielen Danke für die Hilfe von euch beiden.

Ein Backslash funktioniert nicht, da hat ins0 recht.

Jedoch funktioniert der Lösungsvorschlag auch nicht.

www*example*com/irgendwas.html?e

soll werden zu:

www*example*com/irgendwas/


Würde mich freuen wenn ihr nochmal drüber schaun könntet

ins0
PostRank 4
PostRank 4
Beiträge: 128
Registriert: 01.09.2008, 18:29

Beitrag von ins0 » 13.01.2009, 19:56

bei mir funzt es


https://www.example.com/irgendwas.html?e

=> 301 Redirect =>

https://www.example.com/irgendwas/

schaun dir nochma die source an
Zuletzt geändert von ins0 am 13.01.2009, 20:03, insgesamt 1-mal geändert.

silent321
PostRank 3
PostRank 3
Beiträge: 73
Registriert: 13.01.2009, 17:39

Beitrag von silent321 » 13.01.2009, 20:03

Wow es FUnktioniert tatsächlich, hatte beim umschreiben ein Tippfehler, RIESEN Dank! :D

Kristian
PostRank 9
PostRank 9
Beiträge: 1484
Registriert: 20.07.2005, 16:30

Beitrag von Kristian » 13.01.2009, 20:17

Hallo
ins0 hat geschrieben:
Kristian hat geschrieben:Hallo
Setze ein Backslash "" vor das Fragezeichen um es zu maskieren.
wird nicht gehen.
Logisch, ab dem Fragezeichen ist es der QueryString, der im Pfad nicht mehr auftaucht.
Sorry, da habe ich gepennt.

Code: Alles auswählen

	RewriteCond %{QUERY_STRING} ^&?e$
	RewriteRule ^(.+)\.html$ http://www.example.com/$1/? [L,R=301]
passt aber auch nicht wirklich, der Querystring ist in dem Falle ja einfach nur "e".

Code: Alles auswählen

	RewriteCond %{QUERY_STRING} ^e$
	RewriteRule ^(.+)\.html$ http://www.example.com/$1/? [L,R=301]
sollte passen, deine Notation ermöglicht zusätzlich ein "&" welches dank "?" aber nicht unbedingt da sein muss, deshalb funktioniert es bei dir, ist aber nicht wirklich richtig und nötig.

Gruß
Kristian

silent321
PostRank 3
PostRank 3
Beiträge: 73
Registriert: 13.01.2009, 17:39

Beitrag von silent321 » 13.01.2009, 20:26

Kristian hat geschrieben:...deine Notation ermöglicht zusätzlich ein "&" welches dank "?" aber nicht unbedingt da sein muss, deshalb funktioniert es bei dir, ist aber nicht wirklich richtig und nötig.

Gruß
Kristian
Richtig, ich habe das & auch weggenommen, da ich dachte es ist nicht nötig, jedoch funktioniert das ganze ohne das "&" nicht.

Kristian
PostRank 9
PostRank 9
Beiträge: 1484
Registriert: 20.07.2005, 16:30

Beitrag von Kristian » 13.01.2009, 20:37

Hallo

Dann hast du jetzt einen Fipptehler drinn?
Ich habe es gerade getestet, die Doku scheint in dem Falle richtig ;-)

Gruß
Kristian
Seo-Check Biete Links zu Schmuck und Hochzeit sowie Artikelplätze für Firmen allgemein.

silent321
PostRank 3
PostRank 3
Beiträge: 73
Registriert: 13.01.2009, 17:39

Beitrag von silent321 » 13.01.2009, 20:59

Ich hatte, so funktioniert alles Bestens:

RewriteCond %{QUERY_STRING} ^&?e$
RewriteRule ^(.*)\.html$ /$1/? [L,R=301]

:D Danke

ins0
PostRank 4
PostRank 4
Beiträge: 128
Registriert: 01.09.2008, 18:29

Beitrag von ins0 » 13.01.2009, 21:06

...*räusper*....
sollte passen, deine Notation ermöglicht zusätzlich ein "&" welches dank "?" aber nicht unbedingt da sein muss, deshalb funktioniert es bei dir, ist aber nicht wirklich richtig und nötig.
ganz und garnicht ist dieses unnötig oder gar sogar falsch.... :roll:
Denk mal weiter...

Code: Alles auswählen

...test.html?&e
macht es klick? Vielleicht kommst ja drauf...
Wenn nicht, sag bescheid, ich erklärs dir dann :-?
Ich hatte, so funktioniert alles Bestens:

RewriteCond %{QUERY_STRING} ^&?e$
RewriteRule ^(.*)\.html$ /$1/? [L,R=301]

Danke
"(.*)"
^^ warum hast du wieder so ein "Alleweltmuster" übernommen xD

=> (.+)

Kristian
PostRank 9
PostRank 9
Beiträge: 1484
Registriert: 20.07.2005, 16:30

Beitrag von Kristian » 13.01.2009, 21:29

Hallo
ins0 hat geschrieben: ganz und garnicht ist dieses unnötig oder gar sogar falsch.... :roll:
Denk mal weiter...

Code: Alles auswählen

...test.html?&e
macht es klick? Vielleicht kommst ja drauf...
Wenn nicht, sag bescheid, ich erklärs dir dann :-?
Sei so gut und erkläre es mir, ich komme wirklich nicht drauf.
Gruß
Kristian

ins0
PostRank 4
PostRank 4
Beiträge: 128
Registriert: 01.09.2008, 18:29

Beitrag von ins0 » 13.01.2009, 21:42

übergebene Url Parameter können auch mit einem & beginnen und sind trozdem noch gültig.

Sprich:

test.html?e => parameter e wird mit übergeben
test.html?&e => parameter e wird mit übergeben

es gibt noch die möglichkeit das mehrere parameter mit übergeben werden zb.

test.html?foo=bar&e => parameter e wird mit übergeben

demnach ist mein und dein Regex immernoch unvollständig wenn man wirklich jeden Traffic der mit dem parameter e kommt umleiten möchte.

:)

Kristian
PostRank 9
PostRank 9
Beiträge: 1484
Registriert: 20.07.2005, 16:30

Beitrag von Kristian » 13.01.2009, 22:04

Hallo
ins0 hat geschrieben:übergebene Url Parameter können auch mit einem & beginnen und sind trozdem noch gültig.

Sprich:

test.html?e => parameter e wird mit übergeben
test.html?&e => parameter e wird mit übergeben

es gibt noch die möglichkeit das mehrere parameter mit übergeben werden zb.

test.html?foo=bar&e => parameter e wird mit übergeben

demnach ist mein und dein Regex immernoch unvollständig wenn man wirklich jeden Traffic der mit dem parameter e kommt umleiten möchte.

:)
Das ist so nicht richtig.
Normalerweis bestehen Parameter die an ein Script übergeben werden aus Name und Wert.
Beispiel:

Code: Alles auswählen

/path/script?name=value
Wenn mehrere Parameter übergeben werden werden diese entweder durch "&" oder ";" aneinandergehangen.
Beispiel:

Code: Alles auswählen

/path/script?foo=bar&baz=zoo
/path/script?foo=bar;baz=zoo
In der .htaccess geht es aber um den Querystring sprich alles nach dem Fragezeichen.
Es ist letztendlich nur der String der in $ENV{'QUERY_STRING'} steht und von einem Script abgegriffen und geparst wird.
Diese Zeile:

Code: Alles auswählen

RewriteCond %{QUERY_STRING} ^&e$
würde auf

Code: Alles auswählen

test.html?&e
passen.
So

Code: Alles auswählen

RewriteCond %{QUERY_STRING} ^&?e$
ist es für "&e" und "e" tauglich, da das Fragezeichen bedeutet, dass "&" da sein kann aber nicht muß.
Das "^" bedeutet übrigends "Am Anfang" in dem Falle also direkt nach dem Fragezeichen. Das "$" markiert das Ende.
Ich hatte zwar grob vermutet, dass du da eine Parameter-Sache siehst, das "^" macht den Gedanken allerdings kaputt.

Gruß
Kristian

ins0
PostRank 4
PostRank 4
Beiträge: 128
Registriert: 01.09.2008, 18:29

Beitrag von ins0 » 13.01.2009, 23:16

Normalerweis bestehen Parameter die an ein Script übergeben werden aus Name und Wert.
Ja und ? Denk nich so fixiert.
Normalerweise ist die durchschnitliche Lebenserwartung eines Menschen 83 Jahre... und? Muss es aber nicht...
Wenn mehrere Parameter übergeben werden werden diese entweder durch "&" oder ";" aneinandergehangen.
jeder der sich mit der Thematik auskennt schüttelt ab diesem post von dir nurnoch den kopf...vergleich nich äpfel mit birnen.
...achja wenn wir schon dabei sind,... & gibts auch...und...
/path/script?foo=bar;baz=zoo
will ich sehen


den rest den du geschrieben hast, will ich garnicht mehr kommentieren da ich denke das du so fixiert auf deine Antwort bist das es nix bringt....
die diskusion führt für mich ins leere, du hast recht - ich meine ruhe und silent321 ein script was funzt.

und ich fahr jetzt ausem büro nach hause

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag