Internal Server Error (wegen mod_rewrite)

mille

Erfahrenes Mitglied
Hallo,

ich habe unlängst eine Webseite online gesetzt, welche vorher von mir lokal vollständig lauffähig umgesetzt wurde (PHP Shop, Eigenentwicklung, mod_rewrite, Nutzung FCKEditor).
Soweit so gut. Läuft prinzipiell auch alles, bis auf eine Sache. Beim Laden des FCKEditors bekomme ich immer einen "Internal Server Error" ausgegeben. Wenn ich meine htaccess Datei lösche, funktioniert der FCKEditor wieder. Also muss eine Korrelation zwischen Mod_rewrite und dem Laden des FCKEditor vorliegen.
Ich kann mir nicht erklären warum.

Auf der seite http://www.example.org befindet sich ein Verzeichnis Module, in dem wiederum der FCKEditor liegt. Das Aufrufen von http://example.org/Module/fckeditor/editor/fckeditor.html führt genau zu dem Fehler (ohne htaccess Datei nicht). Der Fehler tritt nicht auf, wenn ich ein "www." nutze also http://www.example.org/fckeditor....
Könnt ihr mir helfen?

code der htaccess:
Code:
RewriteEngine on
Options +FollowSymlinks
RewriteBase /

RewriteRule    admin/$                    admin/index.php [L]
RewriteRule    admin$                    admin/index.php [L]

RewriteRule    (.*)/([0-9]+)/details\.html$     index.php?modrewrite=$1&action=showProductDetails&ID=$2&%{QUERY_STRING}  [L]
RewriteRule    ([0-9]+)/details\.html$          index.php?action=showProductDetails&ID=$2&%{QUERY_STRING}  [L]
RewriteRule    (.*)/index\.html$                index.php?modrewrite=$1&%{QUERY_STRING}  [L]

RewriteRule    (.*)/([0-9]+)/bestellung\.html$  index.php?modrewrite=$1&action=showOrderForm&ID=$2&%{QUERY_STRING}  [L]
RewriteRule    (.*)/bestellung\.html$           index.php?modrewrite=$1&action=showOrderForm&%{QUERY_STRING}  [L]
RewriteRule    bestellung\.html$                index.php?action=showOrderForm&%{QUERY_STRING}  [L]

RewriteRule    (.*)/([0-9]+)/abschicken\.html$  index.php?modrewrite=$1&action=sendOrderForm&ID=$2&%{QUERY_STRING}  [L]
RewriteRule    (.*)/abschicken\.html$           index.php?modrewrite=$1&action=sendOrderForm&%{QUERY_STRING}  [L]
RewriteRule    abschicken\.html$                index.php?action=sendOrderForm&%{QUERY_STRING}  [L]
  
RewriteRule    /css/(.*)\.css$                  /css/$1.css             [L]
RewriteRule    /(.*)\.js$                       $1.js                   [L]
RewriteRule    (.*)\.htc$                      $1.htc                   [L]
Rewriterule     Module/(.*)$                   /Module/$1              [L]

RewriteRule    /gfx/icons/(.*)\.(.*)$           /gfx/icons/$1.$2        [L]
RewriteRule    /gfx/prodpic/(.*)\.(.*)$         /gfx/prodpic/$1.$2      [L]
RewriteRule    /gfx/(.*)\.(.*)$                 /gfx/$1.$2              [L]

RewriteRule    ^$ index.php [L]


#RewriteRule    /(.*)\.php$                      $1.php                 [L]

Beste Grüße

PS: alles andere funktioniert. Die Seite, die Bilder, die CSS, die Javascriptdateien. Alles geht. Nur der WYSIWYG Editor nicht :-(
 
Zuletzt bearbeitet:
Und welche Regeln betrifft das? Die Regeln 12–18 kannst du übrigens streichen, da sie sinnlos sind.
 
Hallo,

also welche Regel es betrifft weiß ich nicht. Allerdings habe ich jetzt einfach eine ABfrage reingebaut und lasse den Nutzer, sofern er die Webseite ohne WWW besucht, einfach auf http://www.example.org umleiten.

Dennoch wüsste ich gerne eine Sache.
Ich habe auf der Seite einen Adminbereich (http://www.example.org/admin/index.php).
Im selbigen liegen HTML Dateien, zur Verwaltung der Seite, die jeweils Links zu den einzelnen Einstellmöglichkeiten bieten. Die Links haben Folgende Form im HTML Quelltext: <a href="index.php?page=AddContent">Inhalt Eintragen</a>
Das Problem ist aber, das die generierten Links beim Aufruf von http://www.example.org/admin/index.php nicht http://www.example.org/admin/index.php?page=addContent sind, sondern http://www.example.org/index.php?page=addContent.
Das ist für mich nicht klar, da doch der relative Pfad von index.php *im* Verzeichnis /admin auch zwangsläufig auf index.php im Verzeichnis admin verweisen müsste und nicht auf jene index.html in der root-ebene.
Meine Vermutung ist, dass das ganze an der "Rewrite Base /" liegt. Wie kann ich das beheben?
 
Nein nichts :(.

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Adminbereich</title>
</head>
<script>...</script>
<body>....</body>...
 
Habe den Fehler.
"Lösung" für andere.

Ziemlich merkwürdig, aber ist so:
das aufrufen von http://www.example.org/admin setzt intern das root auf http://www.example.org und nicht auf das verzeichnis. Der Link '<a href="index.php?page=test">..</a>' in der index.php im Verzeichnis admin wird also beim Aufruf von der oben genannten Domain auf http://www.example.org/index.php?page=test bezogen, während der Aufruf des Links von der URL http://www.example.org/admin/index.php auf die korrekte Datei verweist.

Die Lösung ist also, alle Anfragen an http://www.example.org/admin direkt per Header auf http://www.example.org/admin/index.php umzuleiten. Dann klappts auch mit den relativen Verlinkungen.

Beste Grüße
 
Auch wenn „/admin“ den Pfad eines Verzeichnises beschreiben kann, befindet man sich erst mit „/admin/“ im Verzeichnis selbst. Das ist also keineswegs ein komisches Verhalten sondern gewollt.

Dass bei Aufruf von „/admin“ intern die „/admin/index.php“ ausgeliefert wird, liegt wiederum daran, dass die „MultiViews“-Option aktiviert ist, die dafür sorgt, dass Apache etwas toleranter ist und ähnlich lautende Objekte sucht. In diesem Fall wäre es das Verzeichnis „/admin/“, in dem dann das Indexdokument aufgerufen wird.
 
Zurück