ist bei mir mod_rewrite an?
Jeena Paradies
- webserver
Hallo,
Ich versuche für mein Weblog ein Archiv zu erstellen. Dies soll dann so funktionieren dass die URL zu einem bestimmten Beitrag so aussieht:
http://jeenaparadies.de/weblog/archiv/2004/03/12/guter_alleskleber/
Das ganze möchte ich per mod_rewrite machen. Anfangen wollte ich erst einmal vereinfacht also in der Form :
http://jeenaparadies.de/weblog/archiv/1
sollte stehen für:
http://jeenaparadies.de/weblog/example.php?id=1
So weit bin ich gekommen:
Datei http://jeenaparadies.de/weblog/.htaccess
----------------
RewriteEngine on
RewriteRule /archiv/([0-9]+) /example.php?id=$1
Datei http://jeenaparadies.de/weblog/example.php
----------------
<?php
echo $_GET['id'];
phpinfo(); //für euch vielleicht steht da was wichtiges drin???
?>
Von meinem Webhoster habe ich diese E-Mail bekommen nachdem ich ihm sagte dass das irgendwie nicht funktioniert:
----------------
Hi!
/etc/httpd/conf/vhosts/jeenaparadies.clever-webspace.de.conf
/etc/httpd/conf/vhosts/jeenaparadies.clever-webspace.de.ssl.conf
Ich habe in diesen Dateien folgendes geändert:
AllowOverride All
... damit Rewrite rules in .htaccess Dateien erlaubt sind.
Mit freundlichen Grüßen
XXX
----------------
Wenn man nun http://jeenaparadies.de/weblog/archiv/1 eingibt bekommt man einen 404 was nicht gewünscht ist.
Wenn man statdessen http://jeenaparadies.de/example.php?id=1 eingibt bekommt man die ID ausgegeben und danach phpinfo also genau wie erwartet.
Habe ich was falsch gemacht oder mein Provider? Ich kriege ansonsten keine Fehlermeldungen im Browser. Im error_log gibt es den Eintrag File does not exist [blabla]/archiv
Grüße
Jeena Paradies
Hallo,
Wenn man statdessen http://jeenaparadies.de/example.php?id=1 eingibt bekommt man die ID ausgegeben und danach phpinfo also genau wie erwartet.
Sollte heißen:
Wenn man statdessen http://jeenaparadies.de/weblog/example.php?id=1 eingibt bekommt man die ID ausgegeben und danach phpinfo also genau wie erwartet.
Grüße
Jeena Paradies
use Mosche;
http://jeenaparadies.de/weblog/archiv/1
RewriteRule /archiv/([0-9]+) /example.php?id=$1
Wenn man nun http://jeenaparadies.de/weblog/archiv/1 eingibt bekommt man einen 404 was nicht gewünscht ist.
Gerade in Anbetracht deines anderen Postings: überprüf doch mal die Pfade. Fehlt da nicht ein /weblog in deiner Rewrite-Rule?
/example.php soll ja eine vollständige URL sein, ecample.php liegt aber in /weblog.
Außerdem würde ich (das ist aber laut http://httpd.apache.org/docs-2.0/mod/mod_rewrite.html.en#rewriterule nicht notwendig) nicht /archiv/ schreiben, sondern den kompletten Pfad nehmen:
^/weblog/archiv/usw.
use Tschoe qw(Matti);
Hallo,
RewriteRule /archiv/([0-9]+) /example.php?id=$1
Gerade in Anbetracht deines anderen Postings: überprüf doch mal die Pfade. Fehlt da nicht ein /weblog in deiner Rewrite-Rule?
Das weiß ich ja eben nicht. die .htaccess ist ja schon in weblog drin. Muss ich dass dann da hinschreiben oder nicht? (Auf jeden fall probiere ich es gleich aus)
/example.php soll ja eine vollständige URL sein, ecample.php liegt aber in /weblog.
Was heißt vollständige URL ab wo vollständig?
Außerdem würde ich (das ist aber laut http://httpd.apache.org/docs-2.0/mod/mod_rewrite.html.en#rewriterule nicht notwendig) nicht /archiv/ schreiben, sondern den kompletten Pfad nehmen:
^/weblog/archiv/usw.
Jetzt bin ich erst recht verwirrt. *amkopfkratz* In den ganzen Howtos die ich gelesen habe wurde das entweder nicht erwähnt oder ich habe es nicht verstanden.
Grüße
Jeena Paradies
use Mosche;
RewriteRule /archiv/([0-9]+) /example.php?id=$1
Gerade in Anbetracht deines anderen Postings: überprüf doch mal die Pfade. Fehlt da nicht ein /weblog in deiner Rewrite-Rule?
Das weiß ich ja eben nicht. die .htaccess ist ja schon in weblog drin. Muss ich dass dann da hinschreiben oder nicht? (Auf jeden fall probiere ich es gleich aus)/example.php soll ja eine vollständige URL sein, ecample.php liegt aber in /weblog.
Was heißt vollständige URL ab wo vollständig?
Vollständig heisst ab der Wurzel, also muss da /weblog/example.php hin.
Außerdem würde ich (das ist aber laut http://httpd.apache.org/docs-2.0/mod/mod_rewrite.html.en#rewriterule nicht notwendig) nicht /archiv/ schreiben, sondern den kompletten Pfad nehmen:
^/weblog/archiv/usw.
Jetzt bin ich erst recht verwirrt. *amkopfkratz* In den ganzen Howtos die ich gelesen habe wurde das entweder nicht erwähnt oder ich habe es nicht verstanden.
Ich habe das bisher immer so gemacht, es scheint allerdings nicht notwendig zu sein. Allerdings bedeutet dein Ausdruck, dass etwa diese URL umgewandelt wird:
/weblog/blah/blub/blob/archiv/23 zu /weblog/example.php?id=23
Bei meiner Variante (^/weblog/archiv/([0-9]+) wird dies ausgeschlossen.
use Tschoe qw(Matti);
Hi Jeena,
Das weiß ich ja eben nicht. die .htaccess ist ja schon in weblog drin. Muss ich dass dann da hinschreiben oder nicht? (Auf jeden fall probiere ich es gleich aus)
ja, deine "neue" UL ist relative zum DOCUMENT_ROOT
Hatte da schon manch kleine Probleme den Pfad richtig zu bestimmen.
Als Trick hatte ich erstmals oft nur / geschrieben um herauszufinden wo ich den damit rauskomme.
/example.php soll ja eine vollständige URL sein, ecample.php liegt aber in /weblog.
Was heißt vollständige URL ab wo vollständig?
Relative zum DOCUMENT_ROOT
Hallo,
Als Trick hatte ich erstmals oft nur / geschrieben um herauszufinden wo ich den damit rauskomme.
Der Trick ist gut, den werde ich mir merken. Was mein zweiten Problem warscheinlich ist dass mod_rewrite gar nicht eingebunden wird. mit phpinfo() finde ich es jedenfalls nicht. Auf meinem Apache zu hause schon.:\ Ich habe jetzt meinen Provider angeschrieben; mal sehen was der sagt.
Grüße
Jeena Paradies