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