1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

.htaccess und lokaler Apache

Dieses Thema im Forum "PHP & Co." wurde erstellt von zoom, 04.03.09.

  1. zoom

    zoom Antonowka

    Dabei seit:
    06.03.06
    Beiträge:
    356
    Moin!

    Ich habe einen lokalen Apache-Server eingerichtet nach dieser Anleitung.
    Nun möchte ich eine .htaccess Datei mit mod rewrite Regeln nutzen. Die .htaccess funktionierte vorher mit MAMP und auf dem Webserver einwandfrei. Ich habe in der httpd.conf den zweiten Eintrag von AllowOverride None zu AllowOverride All gesetzt. In username.conf habe ich den Eintrag von AllowOverride None zu AllowOverride All gesetzt.
    Wenn ich nun meine lokale Seite öffne, bekomme ich Fehler 403, habe also keinen Zugriff. Woran liegt das? Muss ich noch etwas bei der Änderung der Dateien username.conf und httpd.conf beachten?

    Gruß zoom

    Edit: Offensichtlich liegt das Problem an dem 'RewriteEngine on' - Befehl. Aktiviert ist er in der httpd.conf. Wer kann mir helfen?
     
    #1 zoom, 04.03.09
    Zuletzt bearbeitet: 04.03.09
  2. bond

    bond Erdapfel

    Dabei seit:
    02.03.09
    Beiträge:
    5
    Evtl. musst du noch die "SymLinks" für den jeweiligen Host aktivieren (z.B. in der Datei "httpd-vhosts.conf" im Ordner "Extra").

    Ein Beispiel:
    Code:
    <VirtualHost 127.0.0.1>
        DocumentRoot "/document/root"
        ServerName meinservername
        <Directory "/document/root">
    [...]
            Options +FollowSymLinks
            AllowOverride All
        </Directory>
    </VirtualHost>
    
     
  3. zoom

    zoom Antonowka

    Dabei seit:
    06.03.06
    Beiträge:
    356
    Kannst du das evtl. weiter erläutern? Was sind SymLinks? Aktuell steht in der http-vhosts.conf folgendes:
    Code:
    <VirtualHost *:80>
        ServerAdmin webmaster@dummy-host.example.com
        DocumentRoot "/usr/docs/dummy-host.example.com"
        ServerName dummy-host.example.com
        ServerAlias www.dummy-host.example.com
        ErrorLog "/private/var/log/apache2/dummy-host.example.com-error_log"
        CustomLog "/private/var/log/apache2/dummy-host.example.com-access_log" common
    </VirtualHost>
    Was meinst du mit [...] in deinem Beispiel?

    Gruß zoom
     
  4. bond

    bond Erdapfel

    Dabei seit:
    02.03.09
    Beiträge:
    5
    Hallo zoom,

    du verwendest also keine virtuellen Hosts? :)

    Dann vergesse mal kurz meine Ausführungen zu vhosts und füge folgenden Code in die httpd.conf ein:
    Code:
        Options FollowSymLinks
        AllowOverride All
    
    Entweder bei den "Defaults" oder nur für das gewünschte Verzeichnis.
    Die Standardeinstellungen befinden sich bei mir ab der Zeile 185 und sehen so aus:
    Code:
    # First, we configure the "default" to be a very restrictive set of 
    # features.  
    #
    <Directory />
        Options FollowSymLinks
        AllowOverride [B]None[/B]
        Order deny,allow
        Deny from all
    </Directory>


    Das gewöhnliche typografische Auslassen :)
    An dieser stelle stehen z.B. Angaben zum Logfile etc.
     
    onliner gefällt das.
  5. zoom

    zoom Antonowka

    Dabei seit:
    06.03.06
    Beiträge:
    356
    Hallo bond,

    AllowOverride habe ich auf All gesetzt. Dennoch verweigert mir die .htaccess aufgrund der Rewrite Regeln den Zugriff. Es hat sich also nichts geändert. Gibt es noch eine Idee?
    Ach und herzlich Willkommen im Forum ;)

    Gruß zoom
     
  6. bond

    bond Erdapfel

    Dabei seit:
    02.03.09
    Beiträge:
    5
    Options FollowSymLinks hast du auch davor?

    Kannst du noch in dem errorlog nachschauen, was Apache ausgibt?

    Danke schön :)
     
  7. zoom

    zoom Antonowka

    Dabei seit:
    06.03.06
    Beiträge:
    356
    Also die error_log sagt:
    Code:
    [Sat Mar 07 11:26:37 2009] [error] [client 192.168.1.68] 
    Options FollowSymLinks or SymLinksIfOwnerMatch is off which 
    implies that RewriteRule directive is forbidden: 
    /Users/ich/Sites/testseite/
    Was sagt mir das? Irgendwo muss Options FollowSymLinks noch aktiviert werden. In der http.conf steht:
    Code:
    # First, we configure the "default" to be a very restrictive set of 
    # features.  
    #
    <Directory />
        Options FollowSymLinks
        AllowOverride All
        Order deny,allow
        Deny from all
    </Directory>
    [...]
     # AllowOverride controls what directives may be placed in .htaccess files.
        # It can be "All", "None", or any combination of the keywords:
        #   Options FileInfo AuthConfig Limit
        #
        AllowOverride All
    
        #
        # Controls who can get stuff from this server.
        #
        Order allow,deny
        Allow from all
    Außerdem habe ich in der username.conf AllowOverride auf All gesetzt. Zweite Möglichkeit laut error_log "SymLinksIfOwnerMatch is off". Dazu kenne ich mich nicht genug aus. Wo finde ich diesen Befehl bzw. was muss ich ändern?
     

Diese Seite empfehlen