2016-05-03 9 views
-2

Ich möchte wissen, ob wir etwas wie das erreichen können: example.com/apps?id='blahblah' umgewandelt in example.com/apps/id/blahblah dh. Parameter werden selbst zu Seiten. Ich möchte separate URLs für jede ID, aber dynamisch erstellen. Ist dies in PHP oder einer anderen Problemumgehung möglich?Parameter als Teil der URL statt nach Fragezeichen

+0

Was Sie suchen, heißt [mod_rewrite] (https://httpd.apache.org/docs/2.4/rewrite/) –

+0

Ich kann nicht verstehen, warum Leute downvoted haben. Ist es notwendig, dass ich über mod_rewrite weiß. Es basiert auf Wissen und nicht auf IQ. – clint

Antwort

1

Sie müssen .htaccess verwenden, um dies zu erreichen.

.htaccess schreibt im Grunde die URL zu Ihrem ursprünglichen Speicherort. So zu tun, was Sie in Ihrer Frage gestellt es so sein würde:

RewriteEngine on 
RewriteRule apps/id/(.*?)$ apps?id=$1 
+0

ich habe das gleiche und versuche mit localhost/xyz/apps/id/123, aber es leitet nicht auf localhost/xyz/apps? Id = 123. Kannst du auf meinen Fehler hinweisen? – clint

+0

Es wird nicht umgeleitet, es wird neu geschrieben (zeigen Sie dieselbe Seite in anderen URLs). Zweitens verwenden Sie das xyz-Unterverzeichnis. Hast du diese .htaccess im Verzeichnis xyz abgelegt? –

+0

Ja, ich habe dies in XYZ-Verzeichnis platziert. Also, wenn wir localhost/xyz/apps/id/123 eingeben, wird es nach localhost/xyz/apps? id = 123 umschreiben und die index.php Datei im apps Verzeichnis treffen, richtig? Aber das passiert nicht. – clint

1

Du bist wahrscheinlich downvoted bekommen, weil „mod Rewrite in php“ wurde mit Tutorials und Artikel ausführlich dokumentiert. Versuchen Sie, hier oder bei Google danach zu suchen, und Sie werden viele Ergebnisse finden.

Wie auch immer, wenn Sie Apaches mod_rewrite nicht verwenden können oder wollen, können Sie dasselbe in reinem PHP tun, indem Sie die HTTP-Anfrage analysieren und entsprechend verarbeiten.

Zum Beispiel

$request_path = $_SERVER['PATH_INFO']; 
$request_path = explode("/", $request_path); 

// example.com/apps.php/id/blahblah 
// $request_path[0] => "example.com" 
// $request_path[1] => "apps.php" 
// $request_path[2] => "id" 
// $request_path[3] => "blahblah" 

Hinweis hinzugefügt I .php Erweiterung apps. Wenn Sie die .php Erweiterung ausblenden möchten, müssen Sie trotzdem mod_rewrite verwenden.

Von hier aus können Sie die $request_path verwenden, um herauszufinden, was die Anfrage will.

Verwandte Themen