NGINX und Rewrite

Werner S

Member
Hallo,

ich habe meinen Homeserver heute auf NGINX umgestellt. Soweit alles in Ordnung, auch wenn es noch etwas gewöhnungsbedürftig ist.

Nur mit dem Rewrite will es noch nicht bzw. mit dem Entfernen von .php

Apache
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f

RewriteRule ^(.*)$ $1.php
NGINX
location / {
try_files $uri $uri/ /index.php;
}


location = / {
auth_basic "Privater Bereich";
auth_basic_user_file /etc/nginx/.htpasswd;
}
location ~ \.php$ {
try_files $uri =404;
include fastcgi_params;
fastcgi_pass unix:/run/php/php7.1-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /$1 break;
}
}

Ist mein Code falsch oder habe ich was vergessen?
 
Last edited by a moderator:
Ich will nicht ausschließen, jetzt selbst auf dem Schlauch zu stehen, aber mit
Code:
if (!-e $request_filename)
wird der folgende Rewrite eigentlich nur ausgeführt, wenn der Request nicht auf eine tatsächlich existente Datei geht. Und wenn du einfach nur das ".php" aus deinen URLs entfernen willst, gibt es die "xyz.php" ja jeweils und der Rewrite findet nicht statt.

Versuch's mal so:

Code:
location / {
    rewrite ^(.+)$ /$1.php break;
}


Viele Grüße
Tim
 
Back
Top