Ich habe die Website gründlich durchsucht und auch nach diesem Thema gegoogelt, aber ohne Erfolg. Ich verwende Apache2 + PHP auf meinem Mac OS X. Ich habe nicht viel an der Konfiguration geändert, nur so viel, dass alles korrekt funktioniert. Hier ist mein .htaccess
Datei:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
Options +Indexes
RewriteBase /~milad/mysite/
RewriteEngine On
RewriteRule ^$ index.php?:url [L,QSA] #Handling tail with no parameters
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*?)$ index.php?:url=$1 [L,QSA]
</IfModule>
Dies funktioniert problemlos für alle Dateien, die sich unter http://localhost/~milad/mysite/*
. Aber ich möchte meine .htaccess
Datei unabhängig von den Besonderheiten meiner Installation zu erstellen, d.h. ich möchte nicht die RewriteBase ...
Zeile in meinem Code.
Aber wenn ich diese Zeile entferne, versucht der Apache, sie auf eine URL abzubilden, was ich nicht verstehe. Was ich bekomme ist:
Nicht gefunden
Die angeforderte URL /Users/milad/Sites/newave/index.php wurde auf diesem Server nicht gefunden.
was einfach lächerlich ist, weil die index.php
Datei ist NUR der Ort, auf den dieser URI verweist. Wie auch immer, wenn ich versuche, nach /index.php
代わりに index.php
stelle ich fest, dass sie umgeschrieben wird in http://localhost/index.php
. Wie kommt es also, dass ich nicht nur den relativen Pfad verwenden kann, oder nur die ./index.php
(Ja, das habe ich auch schon versucht).
Jeder Einblick wäre sehr willkommen.