Heim > Backend-Entwicklung > PHP-Tutorial > Wie entferne ich .php- und .html-Erweiterungen von URLs mit NGINX?

Wie entferne ich .php- und .html-Erweiterungen von URLs mit NGINX?

Patricia Arquette
Freigeben: 2024-11-16 19:42:03
Original
1028 Leute haben es durchsucht

How to Remove .php and .html Extensions from URLs Using NGINX?

So entfernen Sie sowohl .php- als auch .html-Erweiterungen aus URLs mit NGINX

Einführung

Bei der Bereitstellung von Webinhalten Aus ästhetischen oder Sicherheitsgründen kann es wünschenswert sein, Dateierweiterungen vor der URL zu verbergen. Dies kann mit NGINX erreicht werden, einer beliebten Webserver-Software.

Problem

Das Ziel besteht darin, sowohl .php- als auch .html-Erweiterungen aus URLs zu entfernen und gleichzeitig ihre Funktionalität beizubehalten . Beispielsweise sollte die URL http://www.meinedomain.com/indexhtml.html als http://www.meinedomain.com/indexhtml und http://www.meinedomain.com/indexphp.php angezeigt werden angezeigt als http://www.mydomain.com/indexphp.

Lösung

Die folgende NGINX-Konfiguration kann verwendet werden, um das Gewünschte zu erreichen Ergebnis:

location / {
    try_files $uri $uri.html $uri/ @extensionless-php;
    index index.html index.htm index.php;
}

location ~ \.php$ {
    try_files $uri =404;
}

location @extensionless-php {
    rewrite ^(.*)$ .php last;
}
Nach dem Login kopieren

Erläuterung

  • Standort /: Dieser Block gilt für alle Anfragen an das Stammverzeichnis der Website.
  • try_files: Diese Direktive versucht, die durch $uri angegebene Datei zu finden. Wenn die Datei nicht existiert, wird versucht, $uri.html oder ein Verzeichnis mit demselben Namen zu finden. Wenn keines von beiden vorhanden ist, wird die Anfrage an den @extensionless-php-Standortblock weitergeleitet.
  • index: Diese Direktive gibt die Standarddateien an, die bereitgestellt werden sollen, wenn $uri auf ein Verzeichnis zeigt.
  • location ~ .php$: Dieser Block entspricht Anfragen mit der Endung .php.
  • try_files $uri =404: Diese Direktive gibt einen 404-Fehler zurück, wenn der URI genau eine .php-Datei ist (ausgenommen Verzeichnisse).
  • location @extensionless-php: In diesem Block erfolgt die Neuverkabelung passiert.
  • rewrite: Diese Direktive schreibt die Anfrage in den URI mit der hinzugefügten Erweiterung .php um. Das letzte Flag verhindert ein weiteres Umschreiben.

Durch die Implementierung dieser Konfiguration werden sowohl .php- als auch .html-Erweiterungen automatisch aus URLs entfernt, was für ein sauberes und benutzerfreundliches Surferlebnis sorgt.

Das obige ist der detaillierte Inhalt vonWie entferne ich .php- und .html-Erweiterungen von URLs mit NGINX?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage