BlackBoard (http://www.black-board.net/index.php)
- Design, Programmierung & Entwicklung (http://www.black-board.net/board.php?boardid=55)
-- Webdesign (http://www.black-board.net/board.php?boardid=19)
--- Apache: Internal Server Error bei mod_rewrite (http://www.black-board.net/thread.php?threadid=15432)


Geschrieben von Flobre am 07.01.2004 um 16:58:

Fragezeichen Apache: Internal Server Error bei mod_rewrite

Hallo

ich will mit mod_rewrite auf nem apache-server (Apache/1.3.20, Linux) aus dynamischen seiten statische machen

beispiel:

http://www.bb.ups-site.de/newthread.php?boardid=19

wird zu

http://www.bb.ups-site.de/newthread,19.html


die regel dazu ist kein problem
doch wenn ich die regel in der htaccess datei definiere (http://httpd.apache.org/docs/mod/mod_rewrite.html) bekomme ich einen Internal Server Error:

code:
1:
2:
3:
4:
5:
6:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.



was muss ich einstellen, damit es funktioniert?
das modul mod_rewrite ist geladen, was ich aus der php-info entnehmen kann.

vielen dank im voraus für die hilfe

mfg
flobre



Geschrieben von Black Star am 07.01.2004 um 18:25:

 

Mach ein Terminal als root auf, und tipp ein:
tail -f /var/log/apache/error.log und dann startest du auf einer anderen Shell den Apache neu.

Das sollte in der Regel einen deutlichen Hinweis geben. Wenn du da nichts mit anfangen kannst, dann poste das ganze hier.
tail -n 200 /var/log/apache/error.log > ~/apache_mod_rewrite_error oder so was in der Art.
Dann hast du in deinem Heimatverzeichnis in der Datei apache_mod_rewrite_error die letzten 200 Zeilen des apache-error-logs stehen.



Geschrieben von Flobre am 07.01.2004 um 19:19:

 

danke für deine hilfe, hatte vergessen den fehler zu posten

[Wed Jan 7 16:48:37 2004] [alert] [client xxx.xxx.xxx.xxx] /home/www/web3/html/coderlinks/test/.htaccess: Options not allowed here


das ist der fehler
was muss ich einstellen damit es erlaubt wird?



Geschrieben von Black Star am 07.01.2004 um 23:37:

 

Gib mal bitte einen Link auf deine Conf, oder Poste deine Conf hier.
Ich denke, dass du den Einsatz von htaccess-Dateien nicht erlaubt hast.
Irgendwo in deiner <DocumentRoot>-Section muss eine Zeile "AllowOverride None" oder "AllowOverride AuthConfig" oder "AllowOverride blah" stehen. Jedenfalls legst du in dem AllowOverride fest, welche Direktiven durch htaccess-Dateien geaendert werden duerfen. Und wenn das auf None steht, ist es halt generell verboten. Die einfachste Moeglichkeit ist es einfach "AllowOverride All" einzutragen. Und das ist auch keine grosse Sicherheitsluecke, wenn es ueberhaupt eine ist.

Edit: Was auch noch sein kann: ein Syntax-Error in deiner htaccess.
Zeig mal bitte deine htaccess her.



Geschrieben von Flobre am 08.01.2004 um 19:21:

 

hab mal den ersten teil der config-datei angehängt (zweite teil im zweiten posting hier drunter)

an der htaccess datei kann es eigentlich nicht liegen, die geht auf einem anderen server
hier trotzdem die htaccess:

code:
1:
2:
3:
4:
5:
6:
7:
RewriteEngine On
Options +FollowSymlinks
RewriteBase /

# Fuer die Kategorien
RewriteRule ^kategorien,(.*),(.*)(\.html?)$ /test/kategorien\.php?action=$1&kategorie=$2 [L]




danke sehr für die hilfe



Geschrieben von Flobre am 08.01.2004 um 19:28:

 

hier der zweite teil der apache-config



Geschrieben von Black Star am 08.01.2004 um 19:38:

 

1) Bitte keine Doppel-Posts!
2) Brauche ich noch diese Datei: /etc/httpd/suse_include.conf
Weil in der httpd.conf stehen keine Regeln fuer das Verzeichnis /home/www/blah..

In der httpd.conf stehen nur die Regeln fuer das DoumentRoot /usr/local/httpd/htdocs
Das AllowOverride Options oder All muss auch in der Sektion fuer die home-Verzeichnisse geaendert werden.
Such mal die Datei, wo das drinne steht.



Geschrieben von Flobre am 08.01.2004 um 20:10:

 

sorry für das doppel-post, aber in eine datei hätte es nicht reingepasst (größer als 20 KB)

hier die suse_include.conf:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
<IfModule mod_userdir.c>
    UserDir public_html
</IfModule>

<Directory /home/*/public_html>
    AllowOverride FileInfo AuthConfig Limit
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    <Limit GET POST OPTIONS PROPFIND>
        Order allow,deny
        Allow from all
    </Limit>
    <LimitExcept GET POST OPTIONS PROPFIND>
        Order deny,allow
        Deny from all
    </LimitExcept>
</Directory>



es funzt aber irgendwie auch nicht, wenn ich die pfade richtig setze (/home/www/*/html)



Geschrieben von Black Star am 08.01.2004 um 20:43:

 

Da aenderst du das AllowOverride auf All oder setzt ein Options dahinter.

EDIT:
Aber das kann es eigentlich auch noch nicht sein.
In welcher Datei wird der Pfad /home/www/web3 definiert?
Irgendwo muss das ja stehen, wenn das funktionieren soll.


Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH