mod_rewrite
Peter
- php
Hallo,
habe jetzt einiges über mod_rewrite gelesen (anscheinend nicht ausreichend) und mir tun sich einige Fragen auf. Folgendes:
Auf dem Server läuft Apache (Apache/1.3.33 (Debian GNU/Linux) PHP/5.1.4-0.0bpo1). Unter Loaded Modules ist "mod_rewrite" zu finden.
In einem Verzeichnis habe ich eine ".htaccess"-Datei erstellt:
RewriteEngine on
RewriteBase /
RewriteRule ^(.*)(.html?)$ index.php?name=$1
Außerdem besteht eine index.php:
<?
echo $name;
?>
Für /index.php?name=Karl wird ordentlich "Karl" ausgegeben.
Für Karl.html kommt ein 404-Fehler, dass die Seite nicht gefunden wurde.
Was habe ich nicht bedacht, falsch gemacht oder ähnliches?
Danke
Hi,
In einem Verzeichnis habe ich eine ".htaccess"-Datei erstellt:
wird diese überhaupt vom Server betrachtet?
Cheatah
wird diese überhaupt vom Server betrachtet?
Wie überprüfe ich das bzw. wie sage ich dem Server, dass er es tun soll?
Hi,
wird diese überhaupt vom Server betrachtet?
Wie überprüfe ich das
wenn Du z.B. kompletten Müll in die Datei schreibst und es beim Aufruf einer Seite _keinen_ Internal Server Error gibt, wird sie offenbar nicht beachtet.
bzw. wie sage ich dem Server, dass er es tun soll?
Beschäftige Dich mit den Konfigurations-Direktiven Options, AllowOverride et.al.
Cheatah
Hallo Cheatah,
In einem Verzeichnis habe ich eine ".htaccess"-Datei erstellt:
wird diese überhaupt vom Server betrachtet?
Ja, denn beim Aufruf von /Karl wird "Karl" ausgegeben.
Viele Grüße aus Freiburg,
Marian
hi,
wird diese überhaupt vom Server betrachtet?
Ja, denn beim Aufruf von /Karl wird "Karl" ausgegeben.
Das stand nirgendwo.
Der OP berichtete lediglich:
Für /index.php?name=Karl wird ordentlich "Karl" ausgegeben.
Da ist noch kein Rewriting im Spiel, da ruft er die index.php direkt mit GET-Parameter auf.
gruß,
wahsaga
Hallo wahsaga,
Für /index.php?name=Karl wird ordentlich "Karl" ausgegeben.
Da ist noch kein Rewriting im Spiel, da ruft er die index.php direkt mit GET-Parameter auf.
Hm, dann hab ich das falsch verstanden. Ich dachte, er meinte damit den Aufruf von /Karl.
Viele Grüße aus Freiburg,
Marian
hi,
RewriteRule ^(.*)(.html?)$ index.php?name=$1
Was willst du denn mit dem ? als optional kennzeichnen - nur das vorstehende Zeichen, oder doch den kompletten geklammerten Unterausdruck?
gruß,
wahsaga
Eigentlich dachte, dass ich damit sowohl *.htm als auch *.html abdecken könnte - nicht?
Hi,
Eigentlich dachte, dass ich damit sowohl *.htm als auch *.html abdecken könnte - nicht?
korrekt. Hätte das gesamte ".html" optional sein sollen, wäre das Fragezeichen fehlplatziert. Darauf wollte wahsaga hinaus.
Cheatah