NGINX : PB DOWNLOAD FICHIER EN ENLEVANT SEULEMENT l'EXTENSION DU FICHIER (exemple .PHP)
Bonjour à tous !
Alors voilà je suis confronté à un petit problème assez génant.
J'ai créé un site internet hébergé sur un serveur Debian comportant Nginx. J'ai nottament fait de la réécriture d'URL et le PHP fonctionne bien.
Mon problème est que lorsque j'enlève le suffixe du .php à mon URL, il veut télécharger la page en PHP...
J'ai essayé de prendre l'exemple de ce code suivant :
location ~/\. {
deny all;
access_log off;
log_not_found off;
}
Auriez-vous une solution pou confronter ce problème ?
Un grand merci ! :)
Il faut voir comment est appelée la socket php et où
tu devrais normalement avoir qques choses qui se base sur l'extension .php
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_n$
include /etc/nginx/fastcgi_params;
}
Je viens de reproduire le phenomène et j'avoue m'être fait avoir par ce fameux try_files
Il faut comprendre que tous les paramètres sauf le dernier sont testés en tant que fichier à renvoyer comme réponse
et même si c'est un fichier php il sera renvoyé tel quel en réponse !!!
voici ce qui ne marche pas
try_files $uri $uri/ /$uri.php /index.php ;
la différence entre /$uri.php et /index.php c'est que le /$uri.php sera renvoyé tel-quel
tandis que /index.php (en dernière position) sera considéré comme une uri à re-traiter
dans ce cas la location .php le prendra en charge et le transmettrera à l'interpréteur php
Il ne sait plus quel est le type mime du fichier si tu enlèves l'extension... Pk tu veux enlever l'extension, en fait..?? C'est surtout ça la grande question :-s
Nan c'est pas ça ! En gros je veut afficher simplement une page php avec "mapage.php" par exemple et le php fonctionne correctement. Jusque la OK. Mais c'est quand je saisie dans l'URL "mapage" il me le télécharge... Je souhaiterais que quand j'enlève le suffixe .php il m'affiche seulement une erreur :)
Donc faudrait que tu nous envoies le "nginx.conf" en entier ;-) Doit y avoir un comportement "par défaut", définit plus proche de la racine de ton fichier, qui provoque ça...
Merci ! Le voici :
user www-data;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
# limit_req_zone key zone=name:size rate=rate;
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";
# limit the number of connections per single IP
limit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:10m;
# limit the number of requests for a given session
limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=5r/s;
# zone which we want to limit by upper values, we want limit whole server
server {
limit_conn conn_limit_per_ip 10;
limit_req zone=req_limit_per_ip burst=10 nodelay;
limit_req zone=one burst=5;
}
# if the request body size is more than the buffer size, then the entire (or partial)
# request body is written into a temporary file
client_body_buffer_size 128k;
# headerbuffer size for the request header from client -- for testing environment
client_header_buffer_size 3m;
# maximum number and size of buffers for large headers to read from client request
large_client_header_buffers 4 256k;
# read timeout for the request body from client -- for testing environment
client_body_timeout 3m;
# how long to wait for the client to send a request header -- for testing environment
client_header_timeout 3m;
# BREACH protection
## Disable of SSL compression
gzip off;
include /etc/nginx/mime.types;
server_tokens off;
client_max_body_size 20000m;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/website.conf;
}
Bonjour,
Ça vient sûrement de ta manière de faire ta réécriture, est-ce que tu pourrais aussi nous montrer cette partie
Je vous montre tout !
server {
listen 80;
server_name www.website.fr 192.168.0.47;
root /home/dev/www/public_html;
index index.html index.php;
server_tokens off;
location ~/.well-known {
allow all;
}
location ~/cloud {
allow all;
}
location ~ \.wav$ {
add_header Content-Disposition "inline";
}
# nginx configuration
location /cloud/ {
autoindex off;
if (!-e $request_filename){
rewrite ^/cloud/(.*)$ /cloud/index.php break;
}
}
location /db55-manager {
# Option: cela permet de séparer les log de phpmyadmin des autres
access_log /home/dev/www/.logs/phpmyadmin_access.log;
error_log /home/dev/www/.logs/phpmyadmin_error.log;
index index.php index.html index.htm;
# Interdiction de certains fichier sensibles.
location ~ ^/db55-manager/(README|LICENSE|ChangeLog|DCO)$ {
deny all;
}
# Interdiction des fichiers .md
location ~ ^/db55-manager/(.+\.md)$ {
deny all;
}
# interdiction de certains répertoires sensibles.
location ~ ^/db55-manager/(doc|sql|setup)/ {
deny all;
}
#configuration de fastCGI pour PhpMyAdmin
location ~ ^/db55-manager/(.+\.php)$ {
try_files $uri =404;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
auth_basic "Pour continuer, merci de vous authentifier sur nos serveurs !";
auth_basic_user_file /etc/nginx/pma_password;
}
location /projects/browse {
auth_basic "Pour continuer, merci de vous authentifier sur nos serveurs.";
auth_basic_user_file /etc/nginx/pswd_projects_website;
}
error_log /home/dev/www/.logs/error_log;
access_log /home/dev/www/.logs/access_log;
# nginx configuration
location / {
if ($http_host ~ "^website.fr$"){
rewrite ^/(.*) https://www.website.fr/$1 redirect;
}
if ($http_host ~ "//website.fr$"){
rewrite ^/(.*) https://www.website.fr/$1 redirect;
}
if ($http_host ~ "^www.website.fr$"){
rewrite ^/(.*) https://www.website.fr/$1 redirect;
}
if ($http_host ~ "^85.169.121.91$"){
rewrite ^/(.*) https://www.website.fr/$1 redirect;
}
if ($http_host ~ "^website.tk$"){
rewrite ^/(.*) https://www.website.fr/$1 redirect;
}
try_files $uri $uri/ $uri.html $uri.php $uri.wav =404;
autoindex on;
}
location /cloud {
autoindex off;
try_files $uri $uri/ $uri.html $uri.php;
}
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
limit_req zone=one burst=5;
}
location ~* \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
error_page 404 /404.html;
}
server {
listen 80;
server_name 85.169.121.91;
return 301 https://www.website.fr$request_uri;
}
server {
listen 80;
server_name website.tk;
return 301 https://www.website.fr$request_uri;
}
server {
listen 80;
server_name website.fr;
return 301 https://www.website.fr$request_uri;
}
server {
listen 443 ssl;
server_name website.fr;
root /home/dev/www/public_html;
index index.html index.php;
if ($host = 'https://website.fr' ) {
rewrite ^/(.*)$ https://www.website.fr/$1 permanent;
}
location / {
try_files $uri $uri/ $uri.html $uri.php $uri.mp3 $uri.wav =404;
autoindex off;
}
location ~ \.php$ {
try_files $uri $uri/ $uri.html $uri.php =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.wav$ {
add_header Content-Disposition "inline";
}
location /db55-manager0 {
# Option: cela permet de séparer les log de phpmyadmin des autres
access_log /home/dev/www/.logs/phpmyadmin_access.log;
error_log /home/dev/www/.logs/phpmyadmin_error.log;
index index.php index.html index.htm;
# Interdiction de certains fichier sensibles.
location ~ ^/db55-manager/(README|LICENSE|ChangeLog|DCO)$ {
deny all;
}
# Interdiction des fichiers .md
location ~ ^/db55-manager/(.+\.md)$ {
deny all;
}
# interdiction de certains répertoires sensibles.
location ~ ^/db55-manager/(doc|sql|setup)/ {
deny all;
}
#configuration de fastCGI pour PhpMyAdmin
location ~ ^/db55-manager/(.+\.php)$ {
try_files $uri =404;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
auth_basic "Pour continuer, merci de vous authentifier sur nos serveurs !";
auth_basic_user_file /etc/nginx/pma_password;
}
location /projects/browse/ {
auth_basic "Pour continuer, merci de vous authentifier sur nos serveurs.";
auth_basic_user_file /etc/nginx/pswd_projects_website;
}
error_log /home/dev/www/.logs/error_log;
access_log /home/dev/www/.logs/access_log;
# Redirection documents site www.website.fr
# -->Section about
rewrite ^/qui-sommes-nous$ /pages-site-internet/about/qui-sommes-nous.php last;
# --></> Fin about
# -->Section produits
rewrite ^/cxs-directory$ /pages-site-internet/produits/cxs-directory.php last;
rewrite ^/cxs-workstation$ /pages-site-internet/produits/cxs-workstation.php last;
rewrite ^/tools-acts$ /pages-site-internet/produits/tools-acts.php last;
# --></> Fin produits
# -->Section services-informations
rewrite ^/informations-cloud$ /pages-site-internet/services-informations/informations-cloud.php last;
rewrite ^/informations-developpement-web-et-logiciels$ /pages-site-internet/services-informations/informations-developpement-web-et-logiciels.php last;
rewrite ^/informations-graphisme$ /pages-site-internet/services-informations/informations-graphisme.php last;
rewrite ^/informations-vps$ /pages-site-internet/services-informations/informations-vps.php last;
# --></>Fin services-informations
# -->Section projects/browse
rewrite ^/browse$ /projects/browse/ last;
# --></>Fin projects/browse
# Fin de toutes les redirections
location ~*^.+(swf|jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$ {
proxy_pass http://192.168.0.47:80;
proxy_cache_valid 2d;
expires max;
}
ssl on;
ssl_certificate /etc/letsencrypt/live/www.website.fr/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.website.fr/privkey.pem;
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/www.website.fr/fullchain.pem;
resolver 8.8.8.8 8.8.8.4 208.67.222.222 valid=300s;
resolver_timeout 3s;
ssl_session_cache shared:SSL:100m;
ssl_session_timeout 24h;
ssl_session_tickets on;
ssl_session_ticket_key /etc/nginx/ssl/ticket.key;
ssl_dhparam /etc/nginx/ssl/dhparam4.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
error_page 403 /403.html;
error_page 404 /404.html;
error_page 500 /500.html;
location ~ /\. { deny all; access_log off; log_not_found off; }
location ~ [^/]\.php(/|$)
{
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name)
{
return 404;
}
}
}
Merci !
C'est quoi l'url que tu souhaites joindre? Et ton fichier il te propose de le dl en tant qu'octet-stream?
C'est à dire ? Mon url est un site internet que j'héberge et jusque la tout va tres bien. Mais c'est ce problème ou le fichier n'arrive pas à interpréter l'erreur et donc me demande de le télécharger.
Par contre je ne comprend pas ce que vous voulez dire par supprimer en tant qu'octet-stream...
dl = download
Et une url c'est pas un site... Tu comprends ce que veut dire "url rewirting"? Si tu ignores ce qu'est une url c'est mal barré :-D
A quelle adresse se trouve ton fichier en question..?
Oui je sais mais je ne parle pas d'utl rewritting mais que chaque fichier en format php si on enleve l'extension on veut le telecharger.
Je souhaite seulement que quand on enleve l'extension ".php" d'une page il me redirige vers ma page d'erreur 404.
Tout le site se trouve dans /home/dev/www/public_html
La config : /etc/nginx/ et tout le tralalère... :)
Et quand ça les dl, c'est quoi le mime type résultant..? Octet-stream?
Parce qu'à mon avis, si tu enlèves l'extension ça match tout simplement rien et donc nginx fallback sur le default_type...
Je te fournit le mime.types :
types {
# Data interchange
application/atom+xml atom;
application/json json map topojson;
application/ld+json jsonld;
application/rss+xml rss;
application/vnd.geo+json geojson;
application/xml rdf xml;
# JavaScript
# Normalize to standard type.
# https://tools.ietf.org/html/rfc4329#section-7.2
application/javascript js;
# Manifest files
application/manifest+json webmanifest;
application/x-web-app-manifest+json webapp;
text/cache-manifest appcache;
# Media files
audio/midi mid midi kar;
audio/mp4 aac f4a f4b m4a;
audio/mpeg mp3;
audio/ogg oga ogg opus;
audio/x-realaudio ra;
audio/x-wav wav;
image/bmp bmp;
image/gif gif;
image/jpeg jpeg jpg;
image/jxr jxr hdp wdp;
image/png png;
image/svg+xml svg svgz;
image/tiff tif tiff;
image/vnd.wap.wbmp wbmp;
image/webp webp;
image/x-jng jng;
video/3gpp 3gp 3gpp;
video/mp4 f4p f4v m4v mp4;
video/mpeg mpeg mpg;
video/ogg ogv;
video/quicktime mov;
video/webm webm;
video/x-flv flv;
video/x-mng mng;
video/x-ms-asf asf asx;
video/x-ms-wmv wmv;
video/x-msvideo avi;
# Serving `.ico` image files with a different media type
# prevents Internet Explorer from displaying then as images:
# https://github.com/h5bp/html5-boilerplate/commit/37b5fec090d00f38de64b591bcddcb205aadf8ee
image/x-icon cur ico;
# Microsoft Office
application/msword doc;
application/vnd.ms-excel xls;
application/vnd.ms-powerpoint ppt;
application/vnd.openxmlformats-officedocument.wordprocessingml.document docx;
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx;
application/vnd.openxmlformats-officedocument.presentationml.presentation pptx;
# Web fonts
application/font-woff woff;
application/font-woff2 woff2;
application/vnd.ms-fontobject eot;
# Browsers usually ignore the font media types and simply sniff
# the bytes to figure out the font type.
# https://mimesniff.spec.whatwg.org/#matching-a-font-type-pattern
#
# However, Blink and WebKit based browsers will show a warning
# in the console if the following font types are served with any
# other media types.
application/x-font-ttf ttc ttf;
font/opentype otf;
# Other
application/java-archive ear jar war;
application/mac-binhex40 hqx;
application/octet-stream bin deb dll dmg exe img iso msi msm msp safariextz;
application/pdf pdf;
application/postscript ai eps ps;
application/rtf rtf;
application/vnd.google-earth.kml+xml kml;
application/vnd.google-earth.kmz kmz;
application/vnd.wap.wmlc wmlc;
application/x-7z-compressed 7z;
application/x-bb-appworld bbaw;
application/x-bittorrent torrent;
application/x-chrome-extension crx;
application/x-cocoa cco;
application/x-java-archive-diff jardiff;
application/x-java-jnlp-file jnlp;
application/x-makeself run;
application/x-opera-extension oex;
application/x-perl pl pm;
application/x-pilot pdb prc;
application/x-rar-compressed rar;
application/x-redhat-package-manager rpm;
application/x-sea sea;
application/x-shockwave-flash swf;
application/x-stuffit sit;
application/x-tcl tcl tk;
application/x-x509-ca-cert crt der pem;
application/x-xpinstall xpi;
application/xhtml+xml xhtml;
application/xslt+xml xsl;
application/zip zip;
text/css css;
text/csv csv;
text/html htm html shtml;
text/markdown md;
text/mathml mml;
text/plain txt;
text/vcard vcard vcf;
text/vnd.rim.location.xloc xloc;
text/vnd.sun.j2me.app-descriptor jad;
text/vnd.wap.wml wml;
text/vtt vtt;
text/x-component htc;
}
Merci de prendre de ton temps ! :D
Te tuer? Boff... J'ai pas ton adresse ^^'
Quand tu tentes de joindre une url sans préciser l'extension, il te propose de dl ou il dl d'office sans rien te demander..?
Mdrrr
Bh pour te dire vu que j'ai paramétré dans GooGle Chrome une fonction qui permet de choisir le répertoire de téléchargement...
Sinon oui il me le télécharge !
Lâche chrome X-D Utilise FF ;-)
Bon, du coup, c'est quasiment sûr que nginx ne parvienne pas à matcher ton url... Du coup => comportement par défaut!
Donc, fais une location qui match l'absence de l'extension... Et/ou utilises "return"!
Avec tout ce que contient ton fichier! Tu devrais pouvoir t'en sortir, non? Y'a même des trucs que je ne connaissais pas ^^'
Certe, mais la question est que comment je peut rediriger tout trafic des pages sans le .php vers le 404 ?
Pourtant j'ai l'habitude de trouver par moi même mes erreurs mais là, c'est plus fort que moi !!
Après de nombreuses recherches sur internet sans succès... Je déprime mdr :D
Ton pb vient du fait que tu essayes toutes les extensions de façon 'bourrin'
Ce que fait try_files
try_files $uri $uri/ $uri.html $uri.php;
S'il ne touve pas le fichier $uri alors il cherche le répertoire du même nom puis il commence par lui rajouter l'extension .html et sinon il essaye l'extension .php
C'est n'importe quoi
Bah, soit tu mets, après tes locations, un return 404, soit tu mets une location qui match quand y'a pas de .php à la fin...
Justement je me suis inspiré du uttoriel de Grafikart...
Je comprend pas @Huggy ! Comment je peux corriger cela ? Merci
@Psylozoff je peux faire quelque chose du type :
location ~ /\ {
deny all;
access_log off;
log_not_found off;
}
? Merci à vous deux ! ;)
X-D @Huggy! C'est le sentiment que j'avais également, sans être vraiment sûr vu que je ne maitrise pas le sujet à 100% ^^'
Utilises try_files en fonction de ce que tu souhaites... Définis l'algorithme qui décrit comment nginx doit traiter ton bazar ;-) Ca nous aidera beaucoup et toi, y compris!
Par contre, pk "/\"?? En gros, tu ne comprends pas vraiment ce que ton fichier fait, si..?? Tu ne sais pas vraiment utiliser les regexp?
Que veux tu que ça fasse si tu ne mets pas l'extension php ?
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
error_page 404 /404.html;
try_files $uri $uri/ /index.php =404;
@Psylozoff Pour t'avouer, je me suis reporté essentiellement au tuto de Grafikart pour nottamment empecher l'access aux fichiers .htaccess et tout le bordel...
Le try_files, je l'avais utilisé dans mon fichier cela me semble.
Quand un fichier php est inexistant, il m'affiche correctement une erreur : jusque là OK.
Mais c'est apres que si un fichier php existe, il le telecharge sans même remonter une erreur .
Ca me le fait partout !
Je fais le nginx -t pour tout checker et apres je fais un nginx restart et aussi un reload
Ca a l'air d'être un sacré bordel ton site... Pour commencer tu devrais définir la "root" de ton block server pour atteindre la partie "routable" de ton site!! Ca permettrait de virer tous les deny all... Tu mets tes dossiers et fichiers sensibles plus haut que ton dossier "routable", comme ça il sera juste impossible de les atteindre via l'url! Ca va faire du ménage!!
Ensuite, liste les actions qu'nginx devra mettre en oeuvre pour traiter les requêtes... Avec papier-crayon histoire de déconnecter de l'écran qui te bouffe le cerveau et t'empêche de réfléchir normalement!!
Nan mais c'est juste un petit exemple.
En gros j'ai permis d'interdir l'accès via un navigateur aux fichiers commencant par un *.*****
Pour ton arbo de site :
www -> ton_site->[dossier_routable->[tes_fichiers_php_et_sous-dossiers_routables], dossier_sensible, fichier_sensible]
Puis :
server {
listen [...]
root /usr/local/www/ton_site/dossier_routable
}
Quand tu dis "le fichier php se télécharge sans montrer d'erreur" tu veux dire que le contenu s'affiche (le code php)
ou bien qu'il s'exécute ?
Il se télécharge ^^ En tant que fichier, dans son dossier de dl... Très certainement en type mime "octet-stream" puisque c'est le default_type...
@Huggy il ne s'affiche même pas ! il veut télécharger et apres une fois telechargé quand on l'ouvre on voit tout le code (HTML, CSS, JS et même le PHP !! )
Ben, y'a aucun block qui match ton url, donc il renvoie le résultat sous la forme par défaut...
Et ce code que @Huggy a fournit ?...
Est-il correct ? Moi, il ne fonctionne pas !
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
error_page 404 /404.html;
try_files $uri $uri/ /index.php =404;
Effectivement, il faut configurer le navigateur en mode "no cache" quand on fait des tests sur un site dont on modifie le contenu sans toucher aux urls ;-p
Peux-tu nous donner plus d'infos
est-ce en http, https ou les deux
dans un répertoire particulier ou la racine
dans ta config il y a un php par socket unix et un autre par tcp port 9000 ? pourquoi
Commence par comprendre ce que fait ta config, précisément... Et nettoie un peu tout ce merdier :-D Y'a un paquet de truc inutiles que tu peux gérer en appliquant simplement de bonnes pratiques architecturales!
Le site internet est accessible seulement en https SSL port 443 dont tout le site internet est dans un répertoire tel que /home/dev/www/public_html
Demain je revois toute l'architecture du fichier de conf.
Je regarde tout demain ! Merci à vous deux!
Yop ;)
Je n'ai toujours pas trouvé de solution... meme en essayant le code fournit !
Je suis en galère
Il faut simplement interpreter l'eereur sur la racine du site en affectant un try_files $uri/ par une Location / ;)
Je veux dire, fais une réponse structurée à ta question originelle et sélectionne-la quand tu passeras ce sujet en status "résolu"... T'as jamais utilisé de forum O_o?
En gros il te demande de sélectionner ce qui t'as permis de répondre à ta question (où si tu as résolu ton problème tout seul d'écrire ta solution assez précise et de cliquer sur "Il a répondu à ma question". Ce qui passera ton sujet en résolue.