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
Antwort
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
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
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? –
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
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.
- 1. Behandle Fragezeichen als Teil der URL in der Flask-Route
- 2. URL-Zeichenfolge nach '/' als Parameter
- 3. jquery Entfernen alles nach Fragezeichen in url
- 4. CJWSoft ASP Klassisches Fragezeichen am Ende der URL nach Login
- 5. lesen Wert nach Fragezeichen enthalten in htaccess Parameter in PHP
- 6. .htaccess URL mit einem Fragezeichen "?"
- 7. Wie Sie optionale Parameter als Fragezeichen in Slim erstellen?
- 8. Laravel-Abfrage gibt Fragezeichen statt Variablenwert zurück
- 9. feedburner URL wird zu Fragezeichen
- 10. Parsen Fragezeichen als normale Zeichen nach mod_rewrite (2)
- 11. @EJB Lookup als Parameter statt hart codiert
- 12. URL mit Fragezeichen als neue HTTP-Anfrage betrachtet?
- 13. Apache2: Schreibe URL mit Fragezeichen
- 14. Vollständige URL mit jQuery einschließlich Parametern nach Fragezeichen erhalten?
- 15. Teil eines umgeleiteten URL als Text
- 16. URL umschreiben, die Fragezeichen enthält
- 17. Wie formatiert man eine Zeichenfolge als Teil der URL?
- 18. PHP preg_match Teil der URL
- 19. htaccess Teil der URL überspringen
- 20. Teil der URL Regex Javascript
- 21. Teil der URL in AngularJS
- 22. Nginx ignorieren Teil der URL
- 23. Laden der Seite der Seite 404 statt Weiterleitung basierend auf URL Start Teil
- 24. Get URL-Parameter innerhalb prepare() Funktion, statt get()/post()
- 25. Ändern der URL-Parameter
- 26. wie "Fragezeichen" in url Javascript übergeben
- 27. Optionales Verketten Fragezeichen nach Funktionsname
- 28. Regex Validate Array nach Fragezeichen
- 29. URL-Dekodierung in Fragezeichen, was zu tomcat
- 30. Wie senden Sie Anfrage mit Schrägstrich statt Fragezeichen?
Was Sie suchen, heißt [mod_rewrite] (https://httpd.apache.org/docs/2.4/rewrite/) –
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