PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Prob mit mod_rewrite


General
19.10.2005, 19:51
Also ich hab mod_rewrite in meine loadmodule.conf eingetragen. Das Modul wird in der Phpinfo auch als geladen angezeigt.
Ebenso habe ich in Confixx für den entsprechenden Benutzer folgendes eingetragen:
<Directory "/srv/www/##user##/html/">

Options +FollowSymlinks

</Directory> Lade ich dann eine .htaccess mit folgendem Inhalt auf den Server
RewriteEngine on
RewriteBase /
RewriteRule ^(.*)-(.*)_(.*)-(.*)_(.*)-(.*)_(.*)-(.*)_(.*)-(.*)_(.*)-(.*)_(.*).html(.*)$ $1.php?$2=$3&$4=$5&$6=$7&$8=$9&$10=$11&$12=$13$14
RewriteRule ^(.*)-(.*)_(.*)-(.*)_(.*)-(.*)_(.*)-(.*)_(.*)-(.*)_(.*).html(.*)$ $1.php?$2=$3&$4=$5&$6=$7&$8=$9&$10=$11$12
RewriteRule ^(.*)-(.*)_(.*)-(.*)_(.*)-(.*)_(.*)-(.*)_(.*).html(.*)$ $1.php?$2=$3&$4=$5&$6=$7&$8=$9$10
RewriteRule ^(.*)-(.*)_(.*)-(.*)_(.*)-(.*)_(.*).html(.*)$ $1.php?$2=$3&$4=$5&$6=$7$8
RewriteRule ^(.*)-(.*)_(.*)-(.*)_(.*).html(.*)$ $1.php?$2=$3&$4=$5$6
RewriteRule ^(.*)-(.*)_(.*).html(.*)$ $1.php?$2=$3$4
RewriteRule ^(.*).html$ $1.php kann ich keine Seite mehr aufrufen. Ebensowenig wird eine Indexseite angezeigt. Dann kommt nur noch eine 403 Fehlerseite vom Apache. Rufe ich dann die Domain direkt auf, meint das blöde Teil, dass kein Index Document vorhanden sei.

Was mache ich falsch?

StGaensler
19.10.2005, 21:17
Ich habe damit zwar wenig Erfahrung, aber probiere mal in der .htaccess die zweite Zeile zu ändern:RewriteBase /srv/www/##user##/html/ (##user## durch den korrekten Wert ersetzen) oder lasse die Zeile komplett weg.

General
19.10.2005, 21:35
Ich habe damit zwar wenig Erfahrung, aber probiere mal in der .htaccess die zweite Zeile zu ändern:RewriteBase /srv/www/##user##/html/ (##user## durch den korrekten Wert ersetzen) oder lasse die Zeile komplett weg.

Weiterhin kommt Zugriff verweigert...

in der httpd.conf habe ich Allow Override auf All gesetzt... bringt das was? Oder muss ich es für den confixx vhost einrichten?

StGaensler
19.10.2005, 21:42
Wenn du einen 403-Fehler bekommst, liegt es eigentlich nicht mehr an den Options.
Hast du die Rewrite-Base Zeile mal weggelassen?

Was sagt der Apache Error-Log? Dort sollte drinnenstehen, auf welche Datei er zugreifen will (und nicht kann).

General
19.10.2005, 22:02
Wenn du einen 403-Fehler bekommst, liegt es eigentlich nicht mehr an den Options.
Hast du die Rewrite-Base Zeile mal weggelassen?

Was sagt der Apache Error-Log? Dort sollte drinnenstehen, auf welche Datei er zugreifen will (und nicht kann).

Ändert nichts..

Hier ein Auszug... der wiederholt sich zigmal..
[Wed Oct 19 21:35:08 2005] [error] [client 84.56.144.34] Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: /srv/www/htdocs/web18/html/, referer: http://www.stargatethealliance.net/index.php?
[Wed Oct 19 21:35:08 2005] [error] [client 84.56.144.34] unable to include potential exec "../contact.html.var" in parsed file /usr/share/apache2/custom-error/include/bottom.fhtml, referer: http://www.stargatethealliance.net/index.php?

StGaensler
19.10.2005, 22:20
OK, dann habe ich oben Schmarrn erzählt :rolleyes:

Das Problem bei Confixx ist, dass du an den Dateien eigentlich nichts ändern kannst, da sie immer wieder von confixx überschrieben werden. Ich habe das auch mal gelöst. Leider habe ich auf den Server keinen Zugriff mehr (habe die Rechte dafür temporär bekommen), und als "Erinnerung" nur noch die eMail an den Inhaber. Ich hoffe, du wirst daraus schlau:Ich habe sogar das Problem mit Confixx beseitigen können. Das Problem lag daran, dass confixx deine Änderungen in den <VirtualHost>-Abschnitt von "meinen" Domains reingeschrieben hat, und sie somit anscheinend für den kompletten Server gegolten haben. Ich habe die Änderungen nun in den <directory>-Abschnitt eingetragen, und nun gelten sie auch nur für dieses Verzeichnis.

Mein Directory-Abschnitt sieht nun so aus:
<Directory "/home/htdocs/webXX/html">
Options +FollowSymLinks +SymLinksIfOwnerMatch
php_admin_flag engine off
Action application/x-httpd-php /cgi-bin/php
<IfModule mod_access.c>
Allow from all
</IfModule>
</Directory>

Ich musste diesen Abschnitt leider in eine extra Datei (server_additionals.conf mit Verweis in der httpd.conf) im selben Verzeichnis schreiben, da confixx die Änderungen in der "confixx_vhost.conf" immer wieder überschreibt, und somit unwirksam macht.Ich habe damals php auf cgi umgestellt, und eben dieses mod_rewrite funktionsfähig gemacht. Quintessenz ist, dass du die Options-Zeile in den Directory-Abschnitt legen musst, der wiederum teilweise in die andere Datei ausgelagert werden muss, da confixx ihn sonst überschreibt.

Ich hoffe, dass das alles stimmt, denn das ist schon so lange her...

General
19.10.2005, 22:40
Ich hab das jetzt genauso gemacht, wie es beschrieben war. Derselbe Fehler. 403 Error - Access denied.

Boah, das Modul bringt mich noch um... :rolleyes:

Disi
22.10.2005, 15:47
Der Virtual host müsste so aussehen


<VirtualHost *>
ServerName domain.tdl
ServerAlias www.domain.tdl

DocumentRoot /srv/www/xxx/

RewriteEngine On

<Directory />
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>


der Entsprechende eintrag in der apache conf ist

AccessFileName .htaccess

General
22.10.2005, 16:24
Der Virtual host müsste so aussehen


<VirtualHost *>
ServerName domain.tdl
ServerAlias www.domain.tdl

DocumentRoot /srv/www/xxx/

RewriteEngine On

<Directory />
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>

der Entsprechende eintrag in der apache conf ist

AccessFileName .htaccess

Habe alles mal so getestet, wie du es gesagt hast, es kommt weiterhin ein Fehler: "Interner Serverfehler", bzw. beim Domainaufruf 403 - kein Index Dokument!

Was nun?

Disi
22.10.2005, 17:22
Die Rewrite base zeigt aber auch auf das Forum oder?

General
24.10.2005, 17:31
Die Rewrite base zeigt aber auch auf das Forum oder?
Natürlich. :o

Disi
25.10.2005, 11:38
hmm langsam gehen mir die ideen aus :(

General
26.10.2005, 16:37
Es ließ sich nun mit einer neuen Directory Directive lösen. :)