Ich möchte ein einziges PHP-Skript, um alle eingehenden Anfragen zu meinem/Blog Directoy. Das PHP-Skript prüft, ob ein SQL-Datensatz für die URL existiert (d. H. Www.example.com/blog/example_article). Wenn ein Datensatz gefunden wird, liefert er die entsprechenden Seitendaten. Wenn es keinen Eintrag für eine URL gibt (d. H. Www.example.com/blog/nothing_here), wird zu 404 umgeleitet.Umleiten Sie alle URL im Verzeichnis zu einzelnen PHP in Nginx
Ich brauche eine Rewrite-Regel in nginx dafür.
Mein aktueller config:
root /usr/share/nginx/html/example/;
index index.php;
server_name example.com www.example.com;
location/{
try_files $uri $uri/ @extensionless-php;
}
location /blog {
rewrite ?; // here i need a rewrite rule
}
location /uploads {
deny all;
}
error_page 404 /templates/404.php;
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi.conf;
fastcgi_intercept_errors on;
}
location @extensionless-php {
rewrite ^(.*)$ $1.php last;
}
Bitte beachten Sie, dass i erweiterungs URL verwenden.
Mögliche Duplikat [alle Anfragen Rewrite mit nginx auf index.php] (http://stackoverflow.com/questions/12924896/rewrite-all-requests-to-index-php -with-nginx) – rzelek
ich habe es geschafft, so weit zu kommen: location/blog { umschreiben ^/([a-z0-9 -] +) /article.php?slug=$1; }, aber ich bekomme meine 404-Seite – J4rVan