2016-04-17 3 views
-1

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.

+2

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

+0

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

Antwort

0

Antwort:

location /blog { 
    index article.php; 
    rewrite ^/blog/(.*)$ /blog/article.php?slug=$1; 
} 
+0

Während dieser Code die Frage beantworten kann, wäre es besser, einige Kontext, erklären, wie es funktioniert und wann es zu verwenden. Nur-Code-Antworten sind auf lange Sicht nicht nützlich. – Bono

Verwandte Themen