Problem mit ModRewrite
DiamondDog
- https
Hallo Leute,
ich hab ein kleines Problem und zwar Funktioniert bei mir die Umwandlung meiner Dynamischen Links nicht.
So hab ich es versucht:
RewriteEngine On
RewriteRule ^([^/]*).html$ /index.php?site=$1 [L]
Orginal URL ist:
http://www.Seite.de/index.php?site=impressum/index
Rewrite URL sollte sein:
http://www.Seite.de/impressum/index.html
leiderpassiert wenn ich das in die htaccess schriebe einfach nichts.
Weiß da vll jemand Rat?
Getestet hab ich das ganze auch schon so:
RewriteRule ^ http://www.Seite.de [R,L]
dann lande ich auf der genannten Seite.
Hoffe das mir da jemand weiterhelfen kann und schon mal danke an alle.
Mfg Dog
@@DiamondDog:
nuqneH
RewriteRule ^([^/]*).html$ /index.php?site=$1 [L]
Das sucht nach etwas, was von Anfang bis Ende keine '/' enthält. Es sollte nicht verwundern, wenn das nicht matcht.
Du solltest aber gar kein Rewrite verwenden, sondern RedirectMatch.
Und verwende bitte nach BCP 32 vorgesehene Beispieldomains.
Qapla'
@@DiamondDog:
nuqneH
RewriteRule ^([^/]*).html$ /index.php?site=$1 [L]
Das sucht nach etwas, was von Anfang bis Ende keine '/' enthält. Es sollte nicht verwundern, wenn das nicht matcht.
Du solltest aber gar kein Rewrite verwenden, sondern RedirectMatch.
Und verwende bitte nach BCP 32 vorgesehene Beispieldomains.
Qapla'
Hey,
also hab jetzt mal veruscht mich langsam ranzutasten:
RewriteEngine on
RedirectMatch ^http://www.example.com/index.php?site=impressum/index$ http://www.example.com/impressum/index.html
das sollte doch normal die Adresse ersetzen, wenn ich mich bei den Beispielen die ich mir durchgelesen habe nicht irre oder? Leider ist dies auch ohne Funktion.
Aber es ist doch richtig das nur die URL geändert wird oder? Weil diese Seite an sich ja nicht existiert:
http://www.example.com/impressum/index.html
Sondern es soll nur der dynamische Link umgewandelt werden, für Suchmaschinen usw..
Mfg Dog
Hi,
RewriteEngine on
RedirectMatch ^http://www.example.com/index.php?site=impressum/index$ http://www.example.com/impressum/index.html
RewiteEngine On ist für Redirect(Match) nicht erforderlich, das wird von einem ganz anderen Modul gehandhabt.
das sollte doch normal die Adresse ersetzen, wenn ich mich bei den Beispielen die ich mir durchgelesen habe nicht irre oder?
Redirect(Match) betrachtet (ebenso wie RewriteRule) nur die Pfad-Komponente des URL, nicht jedoch den Query-String.
MfG ChrisB
Hi,
RewriteEngine on
RedirectMatch ^http://www.example.com/index.php?site=impressum/index$ http://www.example.com/impressum/index.htmlRewiteEngine On ist für Redirect(Match) nicht erforderlich, das wird von einem ganz anderen Modul gehandhabt.
das sollte doch normal die Adresse ersetzen, wenn ich mich bei den Beispielen die ich mir durchgelesen habe nicht irre oder?
Redirect(Match) betrachtet (ebenso wie RewriteRule) nur die Pfad-Komponente des URL, nicht jedoch den Query-String.
MfG ChrisB
Also ich hab jetzt viel gelesen auch viele Beispiele ausprobiert, aber es funktioniert leider nichts was ich mache der Link will sich nicht ändern.
Hoffe das mir einer da doch noch einen Anstoß geben kann.
Hi,
RewriteEngine on
RedirectMatch ^http://www.example.com/index.php?site=impressum/index$ http://www.example.com/impressum/index.htmlRewiteEngine On ist für Redirect(Match) nicht erforderlich, das wird von einem ganz anderen Modul gehandhabt.
das sollte doch normal die Adresse ersetzen, wenn ich mich bei den Beispielen die ich mir durchgelesen habe nicht irre oder?
Redirect(Match) betrachtet (ebenso wie RewriteRule) nur die Pfad-Komponente des URL, nicht jedoch den Query-String.
MfG ChrisB
Also ich hab jetzt viel gelesen auch viele Beispiele ausprobiert, aber es funktioniert leider nichts was ich mache der Link will sich nicht ändern.
Hoffe das mir einer da doch noch einen Anstoß geben kann.
Edit also ich hab rausbekommen das ich so:
RedirectMatch /index /index2
das index in index2 ändern kann. Aber nehme ich zb:
RedirectMatch /impressum /impressum2
so wird dieses nicht geändert.... ??
Da weiß ich nicht ganz wo nach ich da suchen muss jetzt.
Danke schon mal fürs helfen.
Mfg dog
Om nah hoo pez nyeetz, DiamondDog!
Danke schon mal fürs helfen.
Bitte vermeide Vollzitate, sie sind in diesem Forum weder notwendig noch erwünscht, weil sie nur den Lesefluss stören. Zitiere nur das, worauf du dich konkret beziehst.
Matthias
Bitte vermeide Vollzitate, sie sind in diesem Forum weder notwendig noch erwünscht, weil sie nur den Lesefluss stören. Zitiere nur das, worauf du dich konkret beziehst.
Ok werde ich absofort vermeiden.
Also ich bin jetzt schon etwas weiter und zwar sieht es momentan so aus:
RewriteCond %{QUERY_STRING} ^site=(.*)$
RewriteRule ^(.*) /%1.html? [L,R=301]
Jetzt wird aus
http://www.example.com/index.php?site=impressum/index
das hier:
http://www.example.com/impressum/index.html
Das Porblem bei dem ganzen ist, das diese Seite ja nicht existiert und ich somit nen 404 Error bekomme. Ja ich weiß ich arbeite mit ner RewriteRule aber bei RedirectMatch bin ich nicht wirklich weiter gekommen.
Mfg Dog
Hallo,
RewriteCond %{QUERY_STRING} ^site=(.*)$
RewriteRule ^(.*) /%1.html? [L,R=301]
du verblüffst mich. Wolltest du nicht genau das Gegenteil erreichen, also den von extern ankommenden Request nach /impressum/index.html auf die interne URL /index.php?site=impressum/index abbilden?
Deine oben zitierte RewriteRule erwartet aber irgendeinen beliebigen Request mit einem URL-Parameter 'site', und leitet den intern auf /impressum/index.html um. Wenn das nicht existiert, gibt's einen 404, klar.
> Ja ich weiß ich arbeite mit ner RewriteRule
Genau, und warum?
> aber bei RedirectMatch bin ich nicht wirklich weiter gekommen.
Deine Beschreibung ist auch leider ungenügend. Du wirfst immer nur ein Bröckchen hin, aus dem man unmöglich nachvollziehen kann, was du gemacht hast und was tatsächlich das Problem dabei war.
"Ich wollte einen Kuchen backen. Mehl hatte ich auch schon. Hat aber nicht funktioniert."
So etwa wirkt deine Darstellung auf mich.
Ciao,
Martin
--
Chef: Zum vierten Mal in dieser Woche erwische ich Sie nun schon beim Zuspätkommen. Was haben Sie dazu zu sagen?
Angestellter: Dann muss heute Donnerstag sein.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(