mod_rewrite

Apache, Lighttpd, nginx, Cherokee
Post Reply
gamecrash
Posts: 339
Joined: 2002-05-27 10:52
 

mod_rewrite

Post 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...
thomi
Posts: 136
Joined: 2002-06-04 22:33
Location: Waldenbuch
 

Re: mod_rewrite

Post 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.
rootmaster
Posts: 483
Joined: 2002-04-28 13:30
Location: Hannover
 

Re: mod_rewrite

Post 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"
gamecrash
Posts: 339
Joined: 2002-05-27 10:52
 

Re: mod_rewrite

Post 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...
thomi
Posts: 136
Joined: 2002-06-04 22:33
Location: Waldenbuch
 

Re: mod_rewrite

Post by thomi »

Hm, was sagt denn /var/log/httpd/error_log?
gamecrash
Posts: 339
Joined: 2002-05-27 10:52
 

Re: mod_rewrite

Post 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
thomi
Posts: 136
Joined: 2002-06-04 22:33
Location: Waldenbuch
 

Re: mod_rewrite

Post 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...
gamecrash
Posts: 339
Joined: 2002-05-27 10:52
 

Re: mod_rewrite

Post by gamecrash »

Das steht unter <directory /sites>. Na ja, ich werd das mal probieren was Du geschrieben hast, dann sehen wir weiter... :)
kongotarzan
Posts: 19
Joined: 2002-06-04 15:35
Location: Simbach
 

Re: mod_rewrite

Post 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.
kongotarzan
Posts: 19
Joined: 2002-06-04 15:35
Location: Simbach
 

Re: mod_rewrite

Post 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.
Anonymous
 

Re: mod_rewrite

Post by Anonymous »

Hallo,

schreibe einfach
RewriteRule ^(.*).html$ $1.pl [T=application/x-httpd-pl]
Grüße snowcrash
Post Reply