Nginx sert un file simple s'il existe d'autres servez /index.php

Je veux que Nginx serve toutes les requêtes pour les files statiques, mais si le file n'existe pas, alors utilisez index.php qui va gérer tout cela

Actuellement, ma configuration ressemble à ceci,

server { listn 80; listn [::]:80; root /home/www/example.com/htdocs; index index.php; server_name www.example.com; location ~* ^[^\?\&]+\.(html|jpg|jpeg|json|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|svg|woff|ttf)$ { # First attempt to serve request as file, then # as directory, then fall back to index.php try_files $uri $uri/ /index.php; #try_files /favicon.ico =404; } location / { add_header X-Is-PHP true; try_files /index.php =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; # With php5-fpm: fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi.conf; } } 

Ceci est aussi proche que possible, il sert toute request de files statiques, et s'il n'existe pas, sert index.php en tant que file text en clair. Comment puis-je get index.php transmis à l'interpréteur PHP?

2 Solutions collect form web for “Nginx sert un file simple s'il existe d'autres servez /index.php”

essaye ça

 server {
 écouter 80;
 écoutez [::]: 80;

 racine /home/www/example.com/htdocs;

 index index.php;

 nom_server www.example.com;


 location ~ * ^ [^ \? \ &] + \. (html | jpg | jpeg | json | gif | png | ico | css | zip | tgz | gz | rar | bz2 | doc | xls | pdf | ppt | txt | tar | mid | midi | wav | bmp | rtf | js | svg | woff | ttf) $ {
     # Première tentative de servir la request en tant que file, puis
     # comme directory, revenir à index.php
     try_files $ uri $ uri / /index.php;
     #try_files /favicon.ico = 404;
 }

 error_page 404 /index.php;

 location ~ \ .php $ {
             add_header X-Is-PHP true;
             #try_files $ uri = 404;
             try_files /index.php = 404;
             fastcgi_split_path_info ^ (. + \. php) (/.+) $;
             # Avec php5-fpm:
             fastcgi_pass unix: /var/run/php5-fpm.sock;
             fastcgi_index index.php;
             inclure fastcgi.conf;
     }


 }

changements

1) Ajouté error_page 404 /index.php; afin que toutes les requêtes non trouvées sur le server soient redirigées vers index.php

2) Ajout de "~ .php $" à l'atsortingbut de localization.

3) Si vous souhaitez que d'autres files PHP soient interprétés, décommentez la ligne "#try_files $ uri = 404;" et commenter la ligne "try_files /index.php = 404;"

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

  • Nginx n'émet pas les en-têtes d'authentification lors de la redirection vers un domaine différent
  • Réécrire / redirect les URL des sous-domaines vers les URL des sous-directorys
  • Réécrire sur la racine du domaine uniquement dans nginx
  • la règle de réécriture est ignorée
  • Ngnix réécrit avec catchall server_name
  • Nginx: interdire l'accès à un dossier, à l'exception de certains sous-dossiers
  • réécrire ou cycle de redirection interne tout en redirection interne erreur sur Nginx
  • nginx: interdire l'access à un dossier, à l'exception de certains sous-dossiers
  • nginx rewrite dans le sous-dossier
  • La réécriture de la barre oblique de Nginx ne fonctionne pas
  • Remplacer les en-têtes de courrier par Conditionnalité (From & Reply-To) Exchange 2010
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.