Ich habe eine .htaccess-Datei, wo, wenn ein Benutzer auf meiner Website anmeldet, sie an example.com/profiles/[username]
umgeleitet werden. Die hässliche URL ist example.com/profiles/?username=john
wo John ein beliebiger Name sein kann. Immer, wenn der Benutzer beispielsweise nach example.com/profiles/[username]
sucht, wird eine 404 angezeigt. Stattdessen möchte ich, dass diese freundliche URL auf eine hässliche URL umgeleitet wird, damit ihr Profil angezeigt werden kann. Also ich möchte example.com/profiles/john
intern zu example.com/profiles/?username=john
umgeleitet werden.Wie man mod_rewrite, also URL-Umleitungen anders herum?
Hier ist meine .htaccess Bedingungen:
RewriteCond %{THE_REQUEST} /profiles/\?username=([^&\s]+) [NC]
RewriteRule^/profiles/%1? [L,R=302]
RewriteRule ^profiles/([\w-]+)/?$ /profiles/?username=$1 [L]
Diese Bedingungen erfolgreich die ?username=john
Teil der URL entfernen, wie kann ich es so machen es anders herum ist? Wenn also jemand nach example.com/profiles/john
sucht, wird er intern zu example.com/profiles/?username=john
umgeleitet, damit die Seite erfolgreich angezeigt wird?
verwenden, können Sie „intern“ sagen. Soll der Browser immer noch denken, dass er auf 'example.com/profiles/john' steht, aber für einige Skripte im' profiles' -Verzeichnis 'usename = john' als' $ _GET'-Schlüssel => value? – Terminus
@Terminus Mit den obigen Regeln zum Umschreiben, wenn ich zu example.com/profiles/?username=john gehe, leitet es die URL zu example.com/profiles/john um und zeigt einen 404-Fehler an, so wie die Seite nicht existiert. Meine Lösung bestand darin, dass der Benutzer, wenn er die freundliche URL eintippt, auf die hässliche URL umgeleitet wird, damit das Profil angezeigt werden kann und der 404-Fehler verschwunden ist. Vorzugsweise würde ich es für die URL im Browser lieben, in seinem freundlichen Zustand zu bleiben und nicht zum hässlichen zu wechseln. Aber die freundliche URL zeigt eine 404. Wenn das Sinn macht – Bytes
eine andere Frage dann: Haben Sie ein 'profiles' Verzeichnis in Ihrem Webroot und eine' index.php' Datei in diesem Verzeichnis (technisch 2 Fragen aber hey) – Terminus