Die Situation
In der gesamten Domain möchten wir, dass die URLs Dateierweiterungen ausblenden und nachgestellte Schrägstriche entfernen , unabhängig vom Domainnamen selbst (wie in, funktioniert in jeder Domain).
Beispiel unserer Verzeichnisstruktur
Wir verwenden keine Index. * -Dateien mit Ausnahme der Homepage.
- /.
- /index.php
- /account.php
- /Konto
- /subscriptions.php
- /login.php
- /Anmeldung
- /reset-password.php
Das Ziel
Einige Beispiele, wie diese Dateien angefordert werden könnten und wie sie im Browser aussehen sollten:
/
undindex.php
->mydomain.com
(buchstäblich nur der bloße Domainname)./account.php
oder/account/
oder/account
->mydomain.com/account
/account/subscriptions.php
oder/account/subscriptions/
oder/account/subscriptions
->mydomain.com/account/subscriptions
Wie Sie sehen können, gibt es mehrere Möglichkeiten, auf jede Webseite zuzugreifen. Unabhängig davon, auf welche der zwei oder drei Arten Sie dorthin gelangen, wird im Browser nur die eine bevorzugte URL angezeigt.
Die Frage
Wie geht das mit .htaccess mit mod_rewrite?
Ich habe meinen Kopf gegen die Wand geschlagen, um das herauszufinden, aber im Allgemeinen scheint der Umschreibungsfluss ungefähr so zu sein:
- Externe 301-Weiterleitung (
mydomain.com/account/
->mydomain.com/account
) - Fügen Sie intern .php hinzu (
mydomain.com/account
->mydomain.com/account.php
)
Ich habe den ganzen Tag gegoogelt, Tausende von Dokumentationszeilen und Konfigurationstexten gelesen und es mehrere Dutzend Mal versucht ... Ich denke, mehr Verstand würde viel helfen.
AKTUALISIEREN
Wir haben eine Antwort auf unsere Frage gefunden (siehe unten).
/account/
neu geschrieben /account
und tatsächlich geliefert wird /account.php
, nicht /account/index.php
.