mod_rewrite installieren

  • Hallo , das Modul ist auf meinem vserver vorhanden. Wie bindet man es in apache2 ein. Kann mir jemand helfen. Welche Zeilen muss in in welche config Datei schreiben?

    Ich verwende das SysCP Image von Netcup. Danke

  • 1. a2enmod rewrite
    2. /etc/init.d/apache2 reload

    Zum deaktivieren:
    1. a2dismod rewrite
    2. /etc/init.d/apache2 reload


    müsste reichen da es in den images vorhanden ist.





    Lg

  • Vielen Dank für den schnellen Tip.

    nach a2enmod rewrite kommt die Meldung
    -->Module rewrite installed; run /etc/init.d/apache2 force-reload to enable.

    Muss man noch etwas enable?

  • Meine httpd.conf schaut nun so aus:

    DocumentRoot /var/www/
    <Directory />
    AllowOverride FileInfo
    Options FollowSymLinks
    AllowOverride None
    </Directory>
    <Directory /var/www/>
    Options FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
    </Directory>

    Passt das so? Leider startet jetzt Apache gar nicht mehr korrekt. Was habe ich falsch gemacht?

    Michael

  • Das trägt man natürlich nicht unbedingt in die httpd.conf ein. Dann gelten die Einstellungen ja für den gesamten Apache Server. Es genügt völlig dies in SysCP in den erweiterten vHost Einstellungen zu hinterlegen.


    Zitat

    Passt das so?


    Nein. Guck Dir das doch mal an. Du setzt AllowOverride in / auf FileInfo, um es direkt danach wieder auf None zu stellen. Mal davon abgesehen das man dies nicht in / einstellt. Dort sollte überhaupt nichts Überschreibbar sein. Schon allein aus Sicherheitsgründen.


    In den Einstellungen von SysCP folgendes:

    Code
    <Directory /pfad/zum/kunden/domain/ordner/>
    Options FollowSymLinks MultiViews
    AllowOverride FileInfo
    Order allow,deny
    allow from all
    </Directory>

    Dann speichern und warten. Kann um die 10 Minuten dauern bis die Änderungen von SysCP wirksam werden.
    Und die httpd.conf bitte wieder in den Urzustand versetzen.


    Falls es dann immer noch zu Fehlern kommt, Logs prüfen.

  • Ok. verstanden .

    <Directory /pfad/zum/kunden/domain/ordner/>
    Options FollowSymLinks MultiViews
    AllowOverride FileInfo
    Order allow,deny
    allow from all
    </Directory>

    Soll ich diese Einstellung bei den diversen Domains innerhalb der GUI von SysCP setzen (unter vhosts), oder in einer speziellen Datei unter SysCP. Wenn ja, wie heißt diese?

    Michael

  • wenn du sim4000 variante bevorzugst und für einzelne domains brauchst versuchs mit der API.

    [Blockierte Grafik: http://imagespread.com/images/8n77jwhb4d1qreba4jf_thumb.png]
    zumindest hab ich ihn so verstanden.


    bevorzugen würde ich aber eher die httpd.conf.
    wobei das dir vllt noch nicht zu empfehlen ist da du in den kinderschuhen stehst.
    vllt ist dein interesse in hinsicht der administration deines apache hoch.
    dann schau vllt hier einmal vorbei.

    http://httpd.apache.org/docs/2.2/de/mod/


    Lg

  • OK,

    ich habe nun "Eigene Vhost Einstellungen" in SysCP kopiert und auf speichern gedrückt:

    <Directory /var/kunden/webs/ENGLM/ENGLM/root/>
    Options FollowSymLinks MultiViews
    AllowOverride FileInfo
    Order allow,deny
    allow from all
    </Directory>

    /var/kunden/webs/ENGLM/ENGLM/root/ --> Homeverzeichnis für die Domain

    Leider geht es noch nicht. Was kann es noch sein?

  • Ich verstehe nicht ganz, was das jetzt mit mod_rewrite zu tun haben soll? :eek:


    Zu deiner index.php -> Externe Dateien sollte man übrigens niemals mit include() oder require() einbinden, da die Url so als PHP-Code (!) interpretiert wird. Verwende dafür entweder file_get_contents() oder readfile() und lass das @ zur Fehlerunterdrückung weg, dann siehst du auch eventuelle Fehlermeldungen.



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Grundsätzlich kann das Lesen von entfernten Dateien (über eine URL) in der php.ini unterbunden werden, dafür ist die Einstellung allow_url_fopen zuständig. mit
    [PHP]<?php phpinfo(); ?>[/PHP]
    kannst du prüfen, was eingestellt ist.


    Unabhängig davon wäre das aber mit dem Messer von hinten durch die Brust ins Auge - Christian hat natürlich absolut recht, dass man keine entfernten Dateien per include einbindet, aber in deinem Fall ist sie ja eigentlich gar nicht entfernt, du verwendest nur fälschlicherweise die URL für die Einbindung. Versuche es mal so:


    [PHP]<?php
    include('./scripts/news.php');
    ?>
    [/PHP]