Ich habe den folgenden Nginx-Code implementiert:
location / {
try_files $uri $uri.php $uri/ @extensionless-php;
index index.html index.htm index.php;
}
location ~ \.php$ {
try_files $uri =404;
}
location @extensionless-php {
rewrite ^(.*)$ $1.php last;
}
Es ist erfolgreich, die Erweiterung .php
zu entfernen, aber die Seite wird auch mit der Erweiterung .php
geladen. Beispielsweise funktionieren sowohl http://example.com/pages/page.php
als auch http://example.com/pages/page
.
Bitte helfen Sie mir, dass die Seite nur ohne die Erweiterung .php
geladen wird.
location ~ \.php$ {
try_files $uri =404;
}
Diese Konfiguration entspricht /pages/page.php
. In diesem Fall ist $uri
(das erste Argument von try_files
) /pages/page.php
. Wenn diese Datei existiert, gibt nginx den Inhalt der Datei zurück.
Wenn Sie 404 für Anforderungen mit der Erweiterung .php
zurückgeben möchten, ist die folgende Einstellung korrekt.
location ~ \.php$ {
return 404;
}