.htaccess mod_rewrite

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Twerpyfie.

    .htaccess mod_rewrite

    Hey VBP,

    bin gerade dabei mit PHP und htaccess herum zu experimentieren ^^
    Jetzt hab ich mal etwas mit mod_rewriter versucht.

    Quellcode

    1. RewriteEngine On
    2. RewriteRule bild.png bild.php



    ausprobiert uuuund: Geht nicht yAAAAAY !

    Also hab ich bei phpinfo() geguckt, aber da stand, dass das Modul mod_rewrite genutzt werden kann.
    Ich frage mich jetzt was das soll cO
    Kann mir villeicht jemand helfen ? Bin bei ohost angemeldet.

    mfg Twerpyfie
    Wie kommt es eigentlich, dass immer nur du mir helfen willst ? xD
    Hm, ne hab es auch schon so probiert:

    RewriteEngine on
    RewriteRule --(.*)\.png ?=$1

    RewriteEngine on
    RewriteRule ^bild.png$ bild.php [L]

    RewriteEngine on
    RewriteRule ^bild\.png$ bild.php

    hmmm :/

    Kann es sein, dass man bei bestimmten hostern einfach nicht darauf zugreiffen kann OBWOHL diese Module geladen werden können? Wenn ja sehr unlogisch.

    Oder können sie diese Befehle umändern? Wenn ja sollte ohost das dokumentieren, habe aber dazu noch nichts gefunden.

    edit:

    3. Bei der unter 2. aufgeführten .htaccess-Datei kommt beim Webseitenaufruf der Fehler 403 Forbidden.
    [list]In der Apache-Errorlog steht dazu:
    Code: Alles auswählen[error] [client …] Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: /www/user1/htdocs/

    Ursache: Das Nutzen von mod_rewrite in .htaccess-Dateien ist zwar erlaubt (vgl. 2., also AllowOverride ist korrekt gesetzt), jedoch ist bei der Direktive Options die Option FollowSymLinks oder SymLinksIfOwnerMatch abgeschaltet.
    FollowSymLinks bedeutet, dass der Server symbolischen Links folgt. SymLinksIfOwnerMatch bedeutet, dass der Server nur symbolischen Links folgt, bei der die Benuzerkennung des Links mit der Benutzerkennung des Zielverzeichnis/-datei übereinstimmt. Letzteres sollte wenn möglich vermieden werden (Performance).
    :!:Lösung: (mehrere Möglichkeiten)
    1. in der .htaccess oben folgende Zeile einfügen
      Code: Alles auswählenOptions +FollowSymlinks

      Das funktioniert aber nur, wenn du in der .htaccess die Direktive Options überschreiben darfst (vgl. Problem AllowOverride unter 2.). Wenn das Überschreiben von Optionen in .htaccess-Dateien nicht freigegeben ist, kommt beim Webseitenaufruf ein „500 Internal Server Error“-Fehler. Dann wurde das Überschreiben eben nicht freigegeben und du kannst nicht Options +FollowSymlinks einfügen. In der Apache-Errorlog steht dazu
      Code: Alles auswählen[alert] [client ...] /www/user1/htdocs/.htaccess: Options not allowed here
      Ohne Zugriff auf die Serverkonfigurationsdatei httpd.conf kann man hier nichts machen, siehe 6.; es müssten FollowSymlinks oder SymLinksIfOwnerMatch in der Serverkonfiguration freigeschaltet werden (s. nächster Schritt)
    2. Wenn du Zugriff auf die Serverkonfigurationsdatei hast, in dem <Directory>-Abschnitt für deine htdocs, also bspw. <Directory /var/www> (jedoch nicht <Directory />), füge Folgendes ein bzw. ergänze die vorhandene Optionen durch Folgendes:Code: Alles auswählenOptions +FollowSymlinks

      Noch einmal-- Achtung: Es gibt mehrere <Directory>-Abschnitte in der httpd.conf! zu erst <Directory />. Dieser Abschnitt ist restriktiv konfiguriert und vererbt (sofern nicht überschrieben) auf darunter liegende <Directory>-Abschnitte. Dort sollten keine Änderungen vorgenommen werden! FollowSymLinks daher in dem für die htdocs vorgesehenen Abschnitt <Directory /var/www> einfügen.
    [/list]
    quelle: forum.modrewrite.de/topic82.html

    mfg Twerpyfie

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Twerpyfie“ ()

    Twerpyfie schrieb:

    Kann es sein, dass man bei bestimmten hostern einfach nicht darauf zugreiffen kann OBWOHL diese Module geladen werden können?

    Kann natürlich sein, gerade bei solch billig Hoster wie ohost, funpic u.ä. der Code von mir funktioniert garantiert, weil ich diese Regel genauso nutze bis auf den Unterschied das "bild" bei mir captcha heißt. Escapen musst du die Punkte nicht.
    löl ne ich habe natürlich einen eigenen Server bzw. mehrere, die Freehoster würden für meine Projekte nicht reichen, wenn man was haben will muss man dafür auch zahlen.

    Damals, wo ich noch Schüler war, war ich auch bei ohost und habe schon bischel mit htaccess experimentiert und glaube außer ein PW Ordnerschutz und eigene Errorpages konnte man da nicht viel machen.
    Selbst auf einem Webspace wo man für bezahlt, ist mod_rewrite nicht immer möglich, so mitbekommen bei all-inklusive-webspace.de wo ich auch ein Projekt gehostet hatte, welches ich dann auf mein neues Framework mit Suchmaschinoptimierten Links umstellen wollte und es sich herausstelle dass das leider nicht funktionierte.
    Okay vielen Dank, so wie du mir schon geholfen hast hast du auch eine Danksagung verdient :]
    Ich werde mich dann mal demnächst nach einem kostenpflichtigen Webspace umsehen müssen.
    Villeicht finde ich ja was tolles ^^

    mfg Twerpyfie
    Aber achte drauf dass sie auch das mod_rewrite unterstützen was du willst. Also wenn ein Hoster gefunden hast, kannste ja einfach mal nach

    "hostername mod_rewrite" oder ähnliches, ob da Threads findest wo jemand fragt wie warum wieso es ggf. nicht geht.