mod_rewrite funktioniert nur für einen Kunden

liltoe

Registered User
Nabend nochmal :D

Ich kann mir denken, dass euch das Thema Confixx und htaccess in Verbindung mit mod_rewrite sicher Freude bereitet ;)

Bis jetzt habe ich folgendes versucht um mod_rewrite zum Laufen zu bekommen.

Für Kunde web1 habe ich wie beschrieben eine eigene .conf erstellt und in die httpd.conf VOR der confixx_vhost.conf inkludiert mit dem Inhalt

HTML:
<Directory "/home/www/web1/html/">
Options +FollowSymLinks +SymLinksIfOwnerMatch +Multiviews
AllowOverride All
</Directory>
Ergebnis: Für Kunden web1 funktioniert mod_rewrite

Bei web2 brauche ich kein mod_rewrite, habe aber zur Sicherheit noch einmal

HTML:
<Directory "/home/www/web2/html/">
Options +FollowSymLinks +SymLinksIfOwnerMatch +Multiviews
AllowOverride All
</Directory>
in meine erstellte .conf eingefügt.

Gestern wollte ich das gleiche für web3 machen. Nur funktioniert mod_rewrite nicht für diesen Kunden. Ich bekomme immer eine 403-Fehlermeldung und kann keine Dateien aufrufen. Füge ich in die .htaccess-Datei noch Options +FollowSymLinks ein, ergibt das eine 500-Fehlermeldung.

Ich habe die letzten 4 Stunden gegooglt und gesucht und alles versucht, was vielversprechend aussah. Unter anderem habe ich auch in der httpd-Spezial folgendes für alle Anbieter eingefügt:

HTML:
<Directory "/home/www/##user##/html/">
Options +FollowSymLinks +SymLinksIfOwnerMatch +Multiviews
AllowOverride All
</Directory>

Jetzt hat mir Confixx für alle bereits eingetragenen Domains -FollowSymLinks -SymLinksIfOwnerMatch in +FollowSymLinks +SymLinksIfOwnerMatch geändert und auch brav AllowOverride All hinzugefügt. Auch für die Domain von web3. Aber mod_rewrite funktioniert für diesen Kunden immer noch nicht.

Für web1 funktioniert es trotz das ich meine erstellte .conf gelöscht habe. Für die anderen webs, inklusive web 2 funktioniert mod_rewrite nicht und es kommt zu der 403-Fehlermeldung ...

Ihr seid meine letzte Hoffnung, ich bin nämlich mit meinem Latein am Ende :(
 
Last edited by a moderator:
Hallo!
Hast du nach jeder Änderung Apache reloaded? Was steht bei den fehlerhafen Zugriffen im error_log?

mfG
Thorsten
 
Servus!

Klar hab ich den Apachen neu reloaded. In der error log steht

Code:
Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: /srv/www/web3/html/

Allerdings steht in der confixx_vhost.conf folgendes:


Nur für web3 ganz oben in der Datei:
Code:
<Directory "/srv/www/web3/html">
DirectoryIndex index.html index.htm index.php index.php3 index.php4 index.shtml index.shtm index.sht
<Files ~ "\.(wml.*|wbmp)$">
deny from all
</Files>
</Directory>
Und nur weiter unten:
Code:
<VirtualHost 85.25.64.87:80>
ServerName www.test.de
ServerAlias  test.de
DocumentRoot /srv/www/web3/html
SuexecUserGroup web3 ftponly
ScriptAlias /cgi-bin/ /srv/www/web3/html/cgi-bin/
php_admin_value open_basedir /srv/www/web3/:/srv/www/htdocs/phpMyAdmin/:/srv/www/htdocs/confixx/html/gesperrt/
php_admin_value upload_tmp_dir /srv/www/web3/phptmp/
<Directory "/home/www/web3/">
Options +FollowSymLinks +SymLinksIfOwnerMatch +Multiviews
AllowOverride All
</Directory>
</VirtualHost>

FollowSymLinks und SymLinksIfOwnerMatch sind ja auf on, darum grybel ich ja so ...
 
Hallo!
In deinen Options steht einmal /home/www/web3 und im log /srv/www/web3/html. Bitte korrigieren.

mfG
Thorsten
 
Code:
<VirtualHost 85.25.64.87:80>
ServerName www.test.de
ServerAlias  test.de
DocumentRoot /srv/www/web3/html
SuexecUserGroup web3 ftponly
ScriptAlias /cgi-bin/ /srv/www/web3/html/cgi-bin/
php_admin_value open_basedir /srv/www/web3/:/srv/www/htdocs/phpMyAdmin/:/srv/www/htdocs/confixx/html/gesperrt/
php_admin_value upload_tmp_dir /srv/www/web3/phptmp/
<Directory "/home/www/web3/html/">
Options +FollowSymLinks +SymLinksIfOwnerMatch +Multiviews
AllowOverride All
</Directory>
</VirtualHost>

Ist drin. Aber meiner Meinung nach sollte das doch dann für alle Unterordner gelten. Im Error Log steht weiterhin folgendes:

Code:
[Sun Jan 08 13:39:57 2006] [error] [client 84.164.96.170] Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: /srv/www/web3/html/

Das Seltsame ist einfach, ich hab FollowSymLinks und SymLinksIfOwnerMatch für alle webs gelöscht (per httpd Spezial) und für web 1 geht mod_rewrite nach starten des confixx updatescript und apache restart trotzdem. Für web2 und web3 wie gewohnt nicht. Ob ich irgendwo die FSL oder SLIOM auf On habe scheint garnicht mehr zu interessieren, für web1. Es geht so oder so.

Ich habe auch mein .conf-file, welches ich in der httpd.conf einlese gelöscht. Muss das sicher VOR der confixx_vhost.conf inkludiert werden? Ich meine, die confixx_vhost.conf überschreibt doch dann auch meine Einstellungen wieder?!? Aber wie gesagt, ist im Moment draußen und die Options stehen in der confixx_vhost.conf und wurden per httpd-Spezial eingetragen.
 
Hallo!
Ich denke, du solltest das ganze mal etwas sortieren. Mach einfach einen einzigen httpd Spezial Eintrag. Dort schreibst du die gewünschten Optionen hinein:
Code:
<DIRECTORY /srv/www/web3/html>
   AllowOverride FileInfo Options
   Options SymLinksIfOwnerMatch
</DIRECTORY>
Danach das access_log und error_log studieren ob Apache noch etwas stört.

mfG
Thorsten
 
mod_rewrite unter confixx - Die Lösung!

Sorry, dass ich jetzt erst schreibe. Hatte mich so gefreut, dass alles funktioniert, dass ich das total vergessen habe. Erstmal danke an euch alle.

Die Lösung des Problems ist super einfach:

Auf einigen Seiten und in einigen Foren kann man lesen, dass das hier die Lösung ist:

Code:
<DIRECTORY "/srv/www/web3/html">
   AllowOverride FileInfo Options
   Options SymLinksIfOwnerMatch
</DIRECTORY>
Der Fehler daran sind die Hochkommas im Pfad. Richtig muss es so aussehen:

Code:
<DIRECTORY /srv/www/web3/html>
   AllowOverride FileInfo Options
   Options SymLinksIfOwnerMatch
</DIRECTORY>
Einfach in der httpd-Spezial einfügen und mod_rewrite funktioniert ohne Probleme.

Natürlich kann man das auch gleich für alle User angeben:

Code:
<DIRECTORY "/srv/www/#user#/html">
   AllowOverride FileInfo Options
   Options SymLinksIfOwnerMatch
</DIRECTORY>
 
Back
Top