Var/www/html/*.php chargés dans navigateur en file:///var/www/html/*.php plutôt que http://localhost/*.php

Bonjour,

Il s’agit d’une installation en local.

Le problème est que var/www/html/nomFichier.php ne s’affiche correctement dans le navigateur que si je tape manuellement “http://localhost/nomFichier.php” dans la barre d’adresse du navigateur.

Si j’essaie d’ouvrir le fichier en cliquant dessus alors il est affiché dans le navigateur à l’adresse var/www/html/nomFichier.php --> c’est une page blanche qui apparaît …

Que dois-je faire pour que mes fichiers web soient chargés directement en http://localhost/ plutôt qu’en file:///var/www/html/ ?

PS : J’ai ce problème depuis le passage à Debian 10. Sous Debian 9 tout fichier web (php ou html) s’ouvrait directement dans le navigateur en http://localhost/.

Merci

Bonjour,

et bien si tu ouvres le fichier avec ton explorateur de fichier, ce n’est pas apache qui te le sert, donc ce n’est pas du protocole http.
Je ne comprends pas bien l’intérêt de ce que tu veux faire ? …

J’ai le même problème en ouvrant un fichier (php ou html) à partir du navigateur : var/www/html/… n’est pas converti en http://localhost/… . Çe ne “fonctionne” que si je tape manuellement http://localhost/index.php… dans la barre l’adresse. Dans une précédente installation de lamp ça fonctionnait pourtant, mais je ne parviens pas à comprendre ce qui foire ici.

Lorsque je double clique sur un fichier html le gestionnaire de fichier me demande si je veux le lancer ou l’afficher, et propose trois options :

  • lancer dans un terminal ;
  • afficher ;
  • démarrer.

Si je clique sur “Afficher” il ouvre dans le navigateur mais à l’adresse file:///… (dans les deux autres options il ne se passe rien).

Lorsque je clique sur un fichier php le navigateur n’arrête pas d’ouvrir le fichier --> je dois tuer le processus.

Bonjour @Francois

Dans mon environnement Xfce 4.14, je viens de voir un « Créer un lien URL » en faisant un clic droit sur mon bureau.

J’ai fait un test avec une adresse https et pour un fichier .html ;
Cela me crée un fichier en .desktop (SSL Server Test.desktop pour mon premier exemple distant)

[Desktop Entry]
Version=1.0
Type=Link
Name=SSL Server Test
Comment=free online service (to) performs a deep analysis of the configuration of any SSL web server on the public Internet
Icon=certificate-server
URL=https://www.ssllabs.com/ssltest/index.html
rem@n73sm ~/Bureau $ ls -l *.desktop
-rw-r--r-- 1 rem rem 249 10 déc.  14:01 'SSL Server Test.desktop'
rem@n73sm ~/Bureau $

Je dois ajouter la permission d’exécuter ;

rem@n73sm ~/Bureau $ chmod +x 'SSL Server Test.desktop' && ls -l *.desktop
-rwxr-xr-x 1 rem rem 249 10 déc.  14:01 'SSL Server Test.desktop'
rem@n73sm ~/Bureau $

Un double clic sur l’icône du bureau de ce fichier .desktop m’ouvre la page web correspondante dans le navigateur établi par défaut ou bien à choisir.

J’ai fait un deuxième test vers un simple index.html minimaliste de mon serveur nginx local ;
Le fichier de mon lien URL se nomme index_html.desktop et contient :

[Desktop Entry]
Version=1.0
Type=Link
Name=index.html
Comment=localhost index
Icon=start-here
URL=http://127.0.0.1/index.html

Et ça fonctionne pour l’ouvrir dans le navigateur ; en mode http bien sûr !

Je ne sais pas comment tu peux adapter un .desktop pour ton environnement ni si cela va bien marcher pour un fichier .php ? Je pense que tu as tes chances :wink:

Je ne peux créer « un lien URL » en .desktop que sur mon bureau avec le clic droit mais je peux le copier ailleurs ensuite. Il doit être possible d’en faire ou en modifier à la main avec un simple éditeur.

Capture%20d%E2%80%99%C3%A9cran_2019-12-10_14-44-03

C’est parfaitement normal, ton navigateur est tout à fait capable d’interpréter un fichier php local si tu lui en donnes le chemin.
En fait il ne s’agit pas de “convertir” file:///var/www/index.php en http://localhost/index.php, ce sont simplement 2 façons très différentes d’obtenir le fichier (dans la première tu accèdes à un fichier sur ta machine, comme tu accèderais à n’importe quel autre fichier, dans la deuxième, c’est un serveur web qui te sert une copie du fichier).

Donc pour obtenir le comportement que tu souhaites, il faut passer par un petit bricolage, comme le montre r2mi

Non, c’est le serveur web qui interprète le code PHP du fichier et envoie le code HTML résultant au navigateur. Le navigateur n’interprète que le code HTML, pas le PHP. Le résultat sera donc très différent selon qu’on accède au fichier local ou à l’URL du serveur.

2 J'aimes

Oui effectivement, j’aurais dû me contenter de l’exemple d’un fichier html, merci pour la correction.

Malheureusement la solution proposée par r2mi n’est pas une réponse à mon problème. Je pense que la solution est toute simple en fait : il “suffit” de trouver le fichier (config apache ?, htaccess ?, config Debian ?, config navigateur ?) dans lequel je peux mentionner l’instruction “tout fichier web local doit être ouvert dans le navigateur sur le chemin d’url http:localhost/”.

Voie htaccess
J’ai essayé une redirection d’url (https://httpd.apache.org/docs/2.4/urlmapping.html) en plaçant dans le DocumentRoot /var/www/html un htaccess contenant la ligne :

Redirect permanent “/public_html/” “http://localhost/public_html/

… mais c’est sans effet.

Voie config apache

Je ne parviens pas à trouver le changement d’une config qui résolverait le problème :
/etc/apache2/apache2.conf
/etc/apache2/mods-enabled/userdir.conf
/etc/apache2/sites-enabled/000-default.conf

Evidemment. .htaccess est pris en compte par le serveur web, pas par le gestionnaire de fichiers local ni le navigateur.

Quand tu accèdes au fichier local, tu ne passes pas par le serveur web. Fais-toi une raison.

1 J'aime

j’aurais bien voulu savoir comment tu as fait : jamais vu, d’ailleurs je ne comprends pas.