Si je vais append la ligne suivante à ma configuration nginx, cela cassera mon site Web et fonctionnera sans CSS:
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|svg|xml)$ { access_log off; expires 30d; } location / { try_files $uri $uri/ $uri.php =404; rewrite ^/(.+)$ /$1.php last; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; }
si je commente la condition de réécriture, tout fonctionnera bien.
Que puis-je faire pour faire fonctionner les deux choses, la condition de réécriture et la feuille de style css?
Edit: J’ai eu un nouveau problème, maintenant tous les fichiers comme test.php
fonctionnent bien sans écrire .php
, mais les dossiers comme les users/
ne fonctionneront pas, je me rveive toujours File not found
, normalement il devrait prendre l’ index.php
ou l’ index.html
du dossier, comment puis-je fournir les deux fonctions? append .php
aux fichiers et utiliser inde.php/html
partir du dossier?
Vous pouvez séparer les fichiers try_files et réécrire en remplaçant l’ location /
bloc par les deux blocs d’emplacement suivants:
location / { try_files $uri $uri/ @rewriterules; } location @rewriterules { rewrite ^/(.+)$ /$1.php last; }
De cette façon, try_files passe en premier et si aucun fichier n’est trouvé, il y a une réécriture et .php est ajouté à la demande, qui est ensuite exécuté par le bloc d’emplacement .php qui ne devrait nécessiter aucune modification.
Ajoutez le bloc suivant à votre configuration pour gérer les fichiers statiques.
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ { access_log off; expires 30d; root /path/to/public/root; }