wie Mod-rewrite php + Slim url sub-Verzeichnis
Ich bin mit Slim 2.4 und php 5.3. Meine Verzeichnis Struktur in localhost ist so etwas wie dieses
:
- Web-Root
- AppName
- API
- v1
- gehören
- Slim <- Schlanken Rahmen
- tools
- .htaccess (#1)
- index.php (#1)
- v1
- Vermögenswerte
- css
- js
- img
- .htaccess (#2)
- index.php (#2)
- API
- AppName
Ich wan-Zugriff auf localhost/AppName/v1 erschließen localhost/AppName/API/v1. Diese arbeiten teilweise als weitere Parameter werden immer ignoriert. Wenn ich versuche zu bekommen localhost/AppName/v1/anyOtherVariable es öffnet sich die localhost/AppName/API/v1 nur.
Nun, #1 index.php enthält alle Slim-code (routing und stuff), aber #1 .htaccess leer ist.
#2 index.php enthält eine einfache statische homepage, die enthält einige links. In #2 .htaccess habe ich geschrieben
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^v1(/.*)?$ API/v1/index.php$1 [QSA,L]
</IfModule>
Ich bin wirklich aus Optionen.
InformationsquelleAutor Abhishek Deb | 2014-03-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen quick-and-dirty-Lösung ist die Definition einer version konstant und dann entfernen Sie Sie aus der globalen variable $_SERVER['REQUEST_URI'].
Zum Beispiel mein api-url ist http://localhost/api/v1/hello/firstname/lastname.
Ich definiert eine Konstante auf, dann entfernt es aus $_SERVER['REQUEST_URI'] wie unten angegeben:
Und es funktionierte wie ein Charme 🙂
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ %{ENV:BASE}index.php [QSA,L]
.Völlig arbeitete für mich
InformationsquelleAutor Ali
Nach dem head-banging 100 mal, ich beschloss, mich zu ändern meine Verzeichnis-Struktur und-jetzt, alles funktioniert Super. 🙂 Ich bin dieses posting Antworten, um anderen zu helfen, alos habe vor dem gleichen problem. Hier ist also, meine Verzeichnis Struktur.
Nun, dies sind die codes, die ich verwenden in der wichtigsten Dateien:
index.php unter API enthält Slim-Routen.
.htaccess unter-APi, die den folgenden code enthält:
index.php unter v0.9 Verzeichnis enthält die homepage
.htaccess unter er gleichen Verzeichnis enthält:
Diese .htaccess schränkt den direkten Zugriff auf _APP-Ordner, da es sensible Daten enthält. Nun kann man sagen, mich zu bewegen es außerhalb des öffentlich zugänglichen Verzeichnis, aber für Benutzer mit shared-hosting, wie mich, die hosting-Unternehmen beschränkt werde außerhalb des öffentlichen root. Obwohl mit diesem setup sichert die App Aber man sollte immer versuchen, sich zu bewegen das _APP-Verzeichnis außerhalb des öffentlichen Verzeichnis.
und die wichtigsten config.php enthält:
Nutzung: ich habe einfach auch diese config-Datei in jede php-Datei und dann kann ich verwenden
$_APP['db']['h']
InformationsquelleAutor