.htaccess rewriterule funktioniert nicht korrekt auf dem Mac

8

Ich habe ein Website-Projekt auf meinem Mac-Buch pro Leopard, und ich verwende in Apache2 und PHP gebaut. Ich habe meine Konfigurationen sowohl in httpd.conf als auch in user.conf vorgenommen, um htaccess zu verwenden. Änderungen wie:

%Vor%

Das Problem ist, wenn ich eine Website wie öffnen möchte localhost / ~ username / site / site / index.php / welcome, index.php führt einige Operationen aus und findet den richtigen Controller und die richtige Seite.

Aber wenn ich versuche, eine Site wie site / welcome apache einzugeben, bekomme ich folgenden Fehler:

Nicht gefunden

Die angeforderte URL Benutzer / Benutzername / Sites / site / index.php / welcome wurde auf diesem Server nicht gefunden.

Das Problem ist, Apache bekommt das wie es ist in der Tat eine Datei und die Fehlermeldung gibt es in einem Dateisystem Weg, aber diese Anfrage muss stattdessen zu index.php abgerufen werden.

meine .htaccess-Datei sieht so aus

%Vor%

Was mich stört, dass diese Konfiguration sowohl unter Linux als auch unter Windows funktioniert, funktioniert aber nicht unter Mac. Ich fühle mich verloren:)

    
LostMohican 29.10.2011, 21:56
quelle

6 Antworten

15

Ich habe das gleiche Problem auch getroffen! "DocumentRoot" funktioniert bei Lion nicht für mich.

Aber das funktioniert:

%Vor%     
tong 24.05.2012, 12:25
quelle
5

Stellen Sie unter Mac OSX Mountain Lion sicher, dass AllowOverride im Verzeichnis /

auf All gesetzt ist %Vor%

und Stammverzeichnis Ihres Dokumentstammpfads:

%Vor%

stellen Sie auch sicher, dass FollowSymLinks in Options enthalten ist.

Wenn Ihre "index.php-less pretty URL" nicht auf Ihrem DocumentRoot ist, dann fügen Sie das folgende RewriteBase-Verzeichnis in Ihrer .htaccess-Datei hinzu, wo Ihre index.php existiert, wie im folgenden Beispiel:

%Vor%

Wenn Sie den .htaccess -Dateinamen in einen anderen Namen wie .acl oder htaccess.txt ändern möchten, entfernen Sie die Kommentarzeichen in der folgenden Zeile Ihrer httpd.conf

%Vor%

und ändern Sie .htaccess in AccessFileName direction in extra/httpd-default.conf file auf alles, was Sie möchten. Wenn Sie beispielsweise .htaccess file in htaccess.txt ändern möchten, ändern Sie sie in:

%Vor%

speichere sie, starte deinen Apache-Webserver auf OSX Mountain Lion neu und hoffe, dass es dir gut geht. Hoffe, das hilft.

    
Aryo 11.11.2012 02:34
quelle
4

Sie müssen Ihrer .htaccess-Datei die folgende Zeile hinzufügen:

%Vor%     
Rahul Bharadwaj 03.01.2012 06:13
quelle
2

Ich hatte gerade das gleiche Problem, aber die obigen Lösungen funktionierten nicht für mich,

Das Entfernen des Schrägstrichs von Anfang an hat den Trick vollbracht (ich schätze, weil mein Browser bereits unter dem richtigen Benutzer läuft).

So RewriteRule ^ Register /register.php

Wurde RewriteRule ^ Registrieren Sie register.php

Das hat mich verrückt gemacht! BTW Ich führe Xampp (Apache 2) auf Mac OS 10.8.

    
Yoni Hassin 26.03.2013 19:39
quelle
1

Ich hatte das gleiche Problem, aber für mich bestand das Problem darin, dass mod_rewrite nicht aktiviert war.

Ich musste diese zwei Zeilen in der Datei /etc/apache2/httpd.conf auskommentieren:

%Vor%

Danach war es nicht nötig, RewriteBase etc.

zu verwenden     
renetalk 07.02.2018 07:07
quelle
0

Wenn ich eine .htaccess in / Library / WebServer / Documents platziere und öffne "localhost /"; um es zu testen, funktioniert das wie erwartet. Es funktioniert einfach nicht in "~ / Sites".

    
Varun Bhatia 02.04.2014 11:19
quelle