mod_rewrite und Fragezeichen
Stean
- webserver
Hallo zusammen
ich habe bis jetzt folgende Rewrite Role für meinen Apache Server.
RewriteRule ^administration/([0-9]+).html$ /administration/seite.php?n=$1
Diese wandelt eine URL wie z.B. host.tld/administration/10.html nach host.tld/administration/seite.php?n=10 um.
Wie kann ich nun eine URL wie z.B. host.tld/administration/10.html?var=abc nach host.tld/administration/seite.php?n=10&var=abc umwandeln? (Natürlich sollte die URL ohne ?var=abc weiterhin funktionieren)
Vielen Dank
Ich wurde gerade teilweise fündig.
Mit [QSA] am Ende der Zeile werden alle weiteren Parameter mitübergeben. Wie kann ich jetzt die Parameter auf einzelne Einschränken z.B. nur ?var=XY oder ?var1=XY&var2=ABC?
Hi alle!
Ich kann dir nicht helfen, wollte aber auch eine Frage zu mod_rewrite stellen. Ich hoffe, du hast nichts dagegen, wenn ich es mir in deinem Thread bequem mache.
Ich versuche folgende Rewrite-Regeln zum laufen zu bringen.
RewriteEngine on
RewriteRule ^(foo)(\/(.*))? foo.php?var=$3 [L,NC]
RewriteRule (.*) bar.php?var=$1
Also wenn die Adresse nach dem Schema http://example.org/foo/foo1/foo2/ aufgebaut ist, sollte auf foo.php weitergeleitet werden. Es wird aber trotzdem auf bar.php geleitet.
Wenn ich die zweite RewriteRule auskommentiere wird übrigens auf foo.php umgeleitet.
Ich dachte, es reicht, wenn das L-Flag gesetzt ist.
Was habe ich übersehen?
Auch wenn ich in der zweiten RewriteRule angebe, dass foo nicht am Anfang stehen darf, wird trotzdem drauf umgeleitet:
RewriteRule !^(foo)(.*) bar.php?var=$2
Wieso?
MfG H☼psel
Hi Ingrid!
Ich glaube, ich habe den Fehler entdeckt.
Tatsächlich habe ich ein Detail unterschlagen.
Die erste RewriteRule verweist auf einen Ordner, welcher nicht "foo" heißt.
Kann es sein, dass die RewriteEngine nach dem ersten umschreiben noch einmal angeschmissen wird?
Wenn ja, wie kann ich das verhindern?
RewriteEngine on
RewriteRule ^(foo)(\/(.*))? dir/foo.php?var=$3 [L,NC]
RewriteRule (.*) bar.php?var=$1
Ich habe noch eine weitere Frage.
Bei folgender RewriteRule bekomme ich als im Querystring den Namen der Datei, nicht den eingebenen Adressteil:
RewriteRule (.*) foobar.php?var=$1
Wie kann ich das verhindern?
MfG H☼psel
Ich habe noch eine weitere Frage.
Bei folgender RewriteRule bekomme ich als im Querystring den Namen der Datei, nicht den eingebenen Adressteil:
RewriteRule (.*) foobar.php?var=$1
Wie kann ich das verhindern?
Musst du nicht das ganze jeweils Einleiten?
RewriteRule ^(.*)$ foobar.php?var=$1
(Habs aber nicht ausprobiert)
Hi Stefan!
Musst du nicht das ganze jeweils Einleiten?
RewriteRule ^(.*)$ foobar.php?var=$1
"^" und "$" bestimmen nur, ob der Ausdruck am Ende oder am Anfang zu finden sein muss.
Ich habe mir noch mal deine Regel angeschaut und folgendermaßen verändert:
RewriteRule ^administration/([0-9]+)\.html(\?var=(.*))? /administration/seite.php?n=$1&var=$3
Ich hoffe, ich konnte helfen.
MfG H☼psel