Ich möchte eine URL umschreiben (Warum? Siehe diese Frage .), Damit Benutzer Adressen wie sehen
labouseur.com/course-compilers.html
sie können stattdessen einfach sehen und verwenden
labouseur.com/course-compilers
(Noch besser, vielleicht sollte ich das umstrukturieren, damit es Kurse / Compiler sind.)
Ich verwende einen Linux-basierten Shared Hosting-Dienst für meine Website, daher habe ich keine administrative Kontrolle über den Server, aber ich habe Kontrolle über .htaccess. Die Referenzen, die ich online gelesen habe, schienen mir unklar zu sein, deshalb suche ich hier nach ein wenig Klarheit und Rat.
url-rewriting
htaccess
Alan
quelle
quelle
Antworten:
Sie könnten tatsächlich .html von den Dateien auf Ihrem Server entfernen und Einstellungen in htaccess vornehmen, damit sie als HTML-Dateien bereitgestellt werden, aber das ist wahrscheinlich nicht das, wonach Sie suchen.
Mach das :
quelle
Stellen Sie zunächst sicher, dass Apache über das Modul verfügt und dass es in .htacces-Dateien zulässig ist, und fügen Sie dann Folgendes hinzu:
Ihr Beispiel würde erfordern
Für eine einstufige Verzeichnisstruktur und
Für eine mehrstufige Struktur.
Aber sei vorsichtig
Wenn Sie die Struktur haben
Die Umschreiberegeln in den untergeordneten
.htaccess
Dateien sind relativ zum übergeordneten Ordner, und Sie können in unübersichtliche Situationen mit Umschreibeschleifen geraten. Stellen Sie sicher, dass Sie verwendenRewriteCond
, um sie zu stoppen, wenn Sie können!quelle
Als Ergänzung zu obigen Antworten kann man verwenden
([\w-]+)
Ermöglicht Buchstaben und Ziffern mit einem Bindestrich (-).(.*)
schreibt jede Anfrage unabhängig davon neu, was möglicherweise andere folgende Regeln außer Kraft setzt, die beim Zugriff einen internen Serverfehler verursachen.quelle
RewriteRule
Muster ist eine Verbesserung gegenüber der akzeptierten Antwort für das in der Frage angegebene Beispiel. Es wird jedoch nicht mit dem allgemeineren Fall übereinstimmen, wenn mehr als ein Pfadsegment vorhanden ist, z./path/to/course-compilers
. Fügen Sie dasL
Flag ein, um die Auswirkungen auf die folgenden Regeln zu verringern. Obwohl das(.*)
Muster unnötig allgemein ist, ist es unwahrscheinlich, dass es ernsthafte Probleme verursacht, da der Zustand , der die Datei prüft, existiert.Sie müssen dazu keine .htaccess-Datei verwenden. Strukturieren Sie Ihre Dateien einfach in Verzeichnisse und benennen Sie statt "labouseur.com/course-compilers.html" die Datei index.html in einem Verzeichnis namens "course-compilers". Wenn Sie dann auf dieses Verzeichnis zeigen, wird der Index standardmäßig bereitgestellt, jedoch nicht in der URL angezeigt. Sie könnten also einfach Ihre Links als "labourseur.com/course-compilers" schreiben und alles wird gut.
Kein .htaccess erforderlich.
quelle