Page 1 of 1
mod_rewrite
Posted: 2002-06-06 11:24
by gamecrash
Hallo,
nachdem Ihr mir bei meinem letzten Problem so gut helfen konntet komm ich mal mit meinem nächsten...
mod_rewrite ist installiert (taucht auch in der phpinfo() auf), AllowOverride ist für das komplette /sites-Verzeichnis auf All. Aber meine Rewrite-Rules, die auf dem D)F-Server problemlos gefunzt haben, gehen auf einmal nicht mehr. Bei den URLs krieg ich einfach einen 404, ausser die Datei existiert (okay, das ist konfus... Beispiel: in einem Verzeichnis liegt eine info.php und eine test.html. Die RewriteRule würde dann (.htaccess) so aussehen:
RewriteRule ^test.htm /info.php
Demnach sollte Ja ein Aufruf von test.htm auf die info.php weiterleiten, ebenso ein Aufruf von test.html (weil kein $ dahinter ist).
Bei test.html (die ja auch noch existiert) wird mir problemlos der Inhalt der info.php angezeigt - bei test.htm aber nicht.
Ausserdem hatte ich mal mit einem Perl-Programm ein Problem, das mit datei.cgi/ein/paar/parameter aufgerufen wurde, da kamen zum Teil auch 404er raus... also gehe ich mal davon aus dass irgendwas in der Systemkonfiguration fehlt / nicht stimmt (ich weiß ja dass meine Rules funzen müssten). Hat da einer eine Idee? Thx...
Re: mod_rewrite
Posted: 2002-06-06 21:19
by thomi
Hm, ich mußte bei mir das Verzeichnis mit "Options +FollowSymLinks" konfigurieren, also so:
<Directory /sites>
Options +FollowSymLinks
AllowOverride All
</Directory>
Mit
RewriteEngine On
RewriteRule ^test.htm /info.php
in der .htaccess, klappt alles, also sowohl test.htm als auch test.html oder test.htmlxxx liefern alle info.php.
Re: mod_rewrite
Posted: 2002-06-06 21:41
by rootmaster
thomi wrote:
in der .htaccess, klappt alles, also sowohl test.htm als auch test.html oder test.htmlxxx liefern alle info.php.
übrigens auch testahtm...., testbhtm... (regular expressions ;))
"back to the roots"
Re: mod_rewrite
Posted: 2002-06-10 12:19
by gamecrash
Hallo,
danke für die Antworten, bei mir ist Options momentan auf
Options -Indexes FollowSymLinks MultiViews ExecCGI
Wenn ich vor das FollowSymLinks ein + mach dann krieg ich auch noch auf der index-Seite nen Error 403 dass ich keine Berechtigung hab auf die /index.php zuzugreifen - auch wenn ich nur / aufrufe...
Re: mod_rewrite
Posted: 2002-06-10 14:00
by thomi
Hm, was sagt denn /var/log/httpd/error_log?
Re: mod_rewrite
Posted: 2002-06-10 14:35
by gamecrash
Bisher immer ein File not Found, wenn ich bei dem FollowSymLinks ein + davor mach dann kommt ein
[Mon Jun 10 12:08:58 2002] [error] [client 217.84.77.158] Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: /sites/domain.tld/www/htdocs/public
Re: mod_rewrite
Posted: 2002-06-10 14:49
by thomi
GameCrash wrote:Bisher immer ein File not Found, wenn ich bei dem FollowSymLinks ein + davor mach dann kommt ein
[Mon Jun 10 12:08:58 2002] [error] [client 217.84.77.158] Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: /sites/domain.tld/www/htdocs/public
Also ist doch FollowSymLinks aus. Wo hast du den Options-Befehl stehen?
Das muss in etwa so ausssehen:
<Directory /sites/domain.tld/www/htdocs/public>
Options +FollowSymLinks
AllowOverride All
</Directory>
Zur Not probiere erstmal nur obigen Code und füge dann die anderen Options wieder hinzu, vielleicht kollidieren Multiviews und FollowSymLinks...
Re: mod_rewrite
Posted: 2002-06-10 14:55
by gamecrash
Das steht unter <directory /sites>. Na ja, ich werd das mal probieren was Du geschrieben hast, dann sehen wir weiter... :)
Re: mod_rewrite
Posted: 2003-07-18 15:58
by kongotarzan
Hallo,
ich hatte ein ähnliches Problem.
Ich habe jetzt nachfolgende Anweisung direkt in die httpd.conf eingetragen und es funktioniert:
<Directory /home/www/web1/html>
Options +FollowSymLinks
</Directory>
Jetzt stellen sich noch 2 Fragen direkt zum Rewriting-Code.
Als Test habe ich erfolgreich diesen Code eingefügt:
RewriteEngine on
RewriteBase /
RewriteRule ^datei1.html$ datei1.pl [T=application/x-httpd-pl]
Damit wird bei mir erfolgreich aus Datei "datei1.pl" die Datei "datei1.html".
1. Frage:
Kann ich die RewriteRule so verändern, daß statt datei1 jeder beliebige Dateiname mit mit *.pl zu *.html wird, ohne für jede Datei eine eigene Rule zu schreiben?
2. Frage:
Ist es möglich auch die Links automatisch innerhalb den Dateien auf *.html umzuschreiben? Im Moment wird standardmäßig noch die *.pl bzw. datei1.pl geladen, da diese als Verweis stehe.
Ich bin auf
http://httpd.apache.org/docs/misc/rewriteguide.html nicht so richtig schlau darüber geworden.
Re: mod_rewrite
Posted: 2003-07-19 15:19
by kongotarzan
Da ich versehentlich meinen letzten Beitrag nur editiert habe und nicht geantwortet habe, schreib ich diesen Text, damit der obige Beitrag seine Beachtung findet. Sorry.
Re: mod_rewrite
Posted: 2003-07-23 20:29
by Anonymous
Hallo,
schreibe einfach
RewriteRule ^(.*).html$ $1.pl [T=application/x-httpd-pl]
Grüße snowcrash