J'ai donc eu ce "beau" site Web qui a fait exactement ce que je voulais qu'il fasse. Ensuite, j'ai éteint mon ordinateur, redémarré et ... les pages se téléchargent maintenant au lieu d'être affichées.
J'ai réinstallé XAMPP, lancé à nouveau Apache et identifié le fichier . Htaccess comme étant la cause du problème.
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{QUERY_STRING} !^desktop
RewriteCond %{HTTP_USER_AGENT} "Android|blackberry|googlebot-mobile|iemobile|iphone|iPod|#opera mobile|palmos|webos" [NC]
RewriteRule ^/?$ /mobile/index [L,R=302]
RewriteRule ^/?$ /de/index [R]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html
Voici le problème, je suppose:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html
Cela devrait permettre d’utiliser /de/index
au lieu de /de/index.html
- mais d’une manière ou d’une autre, la page sera téléchargée si j’ouvre localhost/de/index
(mais avec localhost/de/index.html
, cela fonctionne très bien ... ).
J'utilise des sites HTML avec SSI Elements sur un serveur Web Apache. Le seul autre fichier différent de celui qui est prêt à l'emploi est le fichier httpd.conf , où j'ai activé SSI:
AddType text/html .shtml
AddHandler server-parsed .shtml
AddHandler server-parsed .html
AddHandler server-parsed .htm
Options Indexes FollowSymLinks Includes
AddOutputFilter INCLUDES .shtml
Options +Includes
J'espère donc que quelqu'un parmi vous pourra m'aider à résoudre ce problème car je suis plutôt désespéré ... pour une raison quelconque, même sans les lignes problématiques Chrome continue de télécharger les fichiers (même si je supprime le fichier . htaccess ), tandis que IE et Opera affichent les pages.
Edit: Now Opera veut également télécharger des fichiers (que ce soit index.html ou index sont appelés).
Les navigateurs proposent de télécharger des fichiers basés sur deux en-têtes:
J'utilise un outil de ligne de commande appelé curl pour vérifier les en-têtes sur un site Web.
curl -s -D - 'http://example.com/' | head -n 20
Si vous ne voulez pas que vos pages soient téléchargées, le Content-Type
doit être réglé sur text/html
ou text/html;charset=UTF-8
et il ne doit pas y avoir d'en-tête Content-Disposition
.
Les navigateurs proposeront de sauvegarder les pages en téléchargement si l'en-tête Content-Type
ressemble à application/octet-stream
. Une boîte de dialogue de téléchargement sera également présentée s’il existe un en-tête Content-Disposition
tel que attachment; filename=foo.html
.
Vous pouvez généralement contrôler les Content-Type
à .htaccess
en utilisant la directive AddType
comme ceci:
AddType text/html .html
Je vois que vous le faites déjà pour les fichiers .shtml
. Vous devrez peut-être faire de même pour d'autres extensions telles que .html
et .htm
.
Il s'agit alors du type par défaut pour les fichiers portant ces extensions, mais s'ils sont sauvegardés par une application Web, le code qui exécute cette application Web a généralement la capacité de les remplacer. La plupart des frameworks d'applications Web ont une sorte de directive setHeader
qui peut être utilisée pour définir à la fois Content-Type
et Content-Disposition
. En plus de vérifier votre fichier .htaccess
, vous devez également vérifier le code qui alimente votre site Web.