apache alias und Unterverzeichnisse
Habe ich die folgende Struktur
/var/www/mysite/public/
/var/www/mysite/api/
In beiden Verzeichnissen .htaccess ist für das umschreiben der url wie folgt :
dev.domain.com/example/=> dev.domain.com/index.php?token=example
dev.domain.com/api/example => dev.domain.com/index.php?token=example
Meiner apache-conf sieht wie folgt aus
...
<VirtualHost *:80>
Servername dev.domain.com
DocumentRoot /var/www/mysite/public/
Alias /api/"/var/www/mysite/api/"
<Directory "/var/www/mysite/api/">
Options Indexes FollowSymLinks
</Directory>
</VirtualHost>
...
dev.domain.com/api/ funktioniert gut (es nennt www/api/index.php) aber dev.domain.com/api/example/ fordert die öffentliche Website (www/public/index.php mit dem query-string token=Beispiel).
Dachte ich, dass der apache-Direktive Alias war die Umleitung auch die Unterverzeichnisse, die anscheinend nicht der Fall ist. Könnte mir jemand sagen, wo ich falsch bin?
Könnten Sie zeigen auch die Neuprogrammierungen in beiden .htaccess?
dies ist die eine von mysite/api/
dies ist die eine von mysite/api/
RewriteRule ^api/(.*)/(.*)/$ index.php?object=$1&collection=$2 [QSA,L] RewriteRule ^api/(.*)/$ index.php?object=$1 [QSA,L]
(Hinweis : dies ist die 'echte', nicht mit token / Beispiel)InformationsquelleAutor Jean-Marc Dormoy | 2012-11-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für mysite/api/Sie verwenden sollten, absoluter Pfad, versuchen Sie bitte diese schreibt:
Wenn irgendetwas nicht wie erwartet funktionieren denken Sie daran, Sie können Debuggen von rewrite-Prozess ermöglicht die rewritelog
Bitte achten Sie auf rewritelog-Konfiguration nur in der Entwicklungsumgebung, denn dieser wird erheblich verlangsamen den server.
[error] [client 10.10.0.6] File does not exist: /var/www/domain.com/api/user
. Btw, der apache server hinter einen NGINX reverse-proxy (aber es funktioniert perfekt für alle Umschreibungen, mit der Ausnahme der alias)Ich schlage vor, zu versuchen, diese umzuschreiben in einer isolierten Umgebung (zum Beispiel computer) und nach dem kopieren es in Ihre server. Dies könnte helfen, Sie zu Debuggen richtig den Anfrage/Antwort-Prozess.
Danke... das Lesen dem schreiben.log gab mir die Lösung. Die rechts-rewriting-Regel ist :
RewriteRule ^(.*)/$ /api/index.php?object=$1 [QSA,L]
Sie begrüßen,:), also wenn ich gut verstanden, der erste Teil der url, in deinem Fall, werden entfernt unter mysite/api/
ja. Klingt dieses Verhalten ist der Alias. Aber ganz ehrlich, ich wusste nicht weiter zu untersuchen, jetzt, dass es funktioniert 😉
InformationsquelleAutor freedev
So war dies ein problem umschreiben : das alias-Verzeichnis sollte nicht in das Muster zu passen.
Hier ist die Finale config :
apache-config-Datei
und .htacess Datei /api/Verzeichnis
Dank @freedev für Ihre Zeit.
InformationsquelleAutor Jean-Marc Dormoy