.htaccess erweitern
Chris1996
- programmiertechnik
Guten Abend,
ist es möglich mit einer .htaccess folgendes zu erreichen?
Meine URL sieht so aus:
bilder-uebersicht?ort=b
Daraus möchte ich gerne folgendes machen:
bilder-uebersicht/b
Gruß
Chris1996
Moin!
Meine URL sieht so aus:
bilder-uebersicht?ort=bDaraus möchte ich gerne folgendes machen:
bilder-uebersicht/b
Die Antwort lautet "Im Prinzip: Ja."
Und zwar etwa so:
RewriteEngine on
RewriteRule ^/bilder-uebersicht\?ort=(.*)$ /bilder-uebersicht/$1 [L]
Allerdings wollen es die meisten anders herum ...
Jörg Reinholz
Die Antwort lautet "Im Prinzip: Ja."
Danke dir für das Beispiel!
RewriteEngine on
RewriteRule ^/bilder-uebersicht?ort=(.*)$ /bilder-uebersicht/$1 [L]
> Allerdings wollen es die meisten anders herum ...
Was meinst du damit bzw. wie wollen die meisten es?
RewriteEngine on
RewriteRule ^/bilder-uebersicht?ort=(.*)$ /bilder-uebersicht/$1 [L]
>
> > Allerdings wollen es die meisten anders herum ...
>
> Was meinst du damit bzw. wie wollen die meisten es?
Etwa so:
~~~apache
RewriteEngine on
RewriteRule ^/bilder-uebersicht/(.*)$ /bilder-uebersicht.php?ort=$1 [L]
Jörg Reinholz
Guten Abend,
RewriteEngine on
RewriteRule ^/bilder-uebersicht/(.*)$ /bilder-uebersicht.php?ort=$1 [L]
so meinte ich es eigentlich auch, also der User sieht dann folgendes in der URL:
examples.com/bilder-uebersicht/koeln
wenn ich dieses in meine .htaccess schreibe, passiert nichts, es werden einfach alle Bilder angezeigt. Rufe ich meine Seite wie früher mit ?ort=koeln auf, wird es wieder gefilter.
In meinen Logs stehen keine Fehler. An was könnte es liegen? Die .htaccess geht, da noch ein anderer Code ausgeführt wird.
RewriteEngine on
RewriteRule ^/bilder-uebersicht/(.*)$ /bilder-uebersicht.php?ort=$1 [L]
>
> so meinte ich es eigentlich auch, also der User sieht dann folgendes in der URL:
>
> examples.com/bilder-uebersicht/koeln
>
> wenn ich dieses in meine .htaccess schreibe, passiert nichts, es werden einfach alle Bilder angezeigt.
Deine Fehlermeldung war falsch. Denn eigentlich erschien wohl eher gar nichts außer einem 404er. Es sei denn, Du hast in /bilder-uebersicht/ eine index.php, welche die Arbeit macht.
In der RewriteUkle war ein slash ("/") zu viel:
~~~apache
RewriteEngine on
RewriteRule ^bilder-uebersicht/(.*)$ /bilder-uebersicht.php?ort=$1 [L]
getestet mit folgender "/bilder-uebersicht.php"
<pre><?php
print_r($_GET);
?></pre>
dem obigem htaccess-Eintrag und der URL
http://localhost/bilder-uebersicht/kassel -- Ergebnis:
Array
(
[ort] => kassel
)
http://localhost/bilder-uebersicht/Kölnl -- Ergebnis:
Array
(
[ort] => Köln
)
Bitte merke Dir die Methode (Inhalt der "bilder-uebersicht.php") für den Test. Derlei braucht man quasi ständig auch für Cookies, POST-Daten, Sessions, Dateiupload und nicht zuletzt bei logischen Fehlern, die mit arrays zu tun haben.
Jörg Reinholz
Hi,
Allerdings wollen es die meisten anders herum ...
Was meinst du damit bzw. wie wollen die meisten es?
die wollen eine "schöne" URL wie etwa /bilder-uebersicht/b haben, und die intern auf /bilder-uebersicht?ort=b abbilden.
Ciao,
Martin
Om nah hoo pez nyeetz, Chris1996!
Was meinst du damit bzw. wie wollen die meisten es?
Die wollen die schöne URL example.com/bilder/b/
im Browser sichtbar lassen und deshalb intern auf //example.com/ganzwoanders/bilderübersichtsanzeigescripthtmlausgabe.php?ort=b
umleiten.
Ich vermute mal, das ist auch das, was du möchtest.
Matthias