それで、私はそれがやりたいことを正確にしたこの「美しい」ウェブサイトを持っていました。その後、PCをシャットダウンし、再起動すると...ページが表示される代わりに、今すぐダウンロードされます。
XAMPPを再インストールし、Apacheを再度起動したところ、問題の原因として。htaccessファイルを特定できました。
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
これは私が推測する問題です:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html
これにより、/de/index
の代わりに/de/index.html
を使用できるようになりますが、localhost/de/index
(ただしlocalhost/de/index.html
を使用すると正常に動作します... )。
Apache WebサーバーでHTMLサイトとSSI要素を使用しています。すぐに使用できるファイルとは異なる他のファイルは、httpd.confのみです。ここでは、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
だから私はあなたの中で誰かがこの厄介な問題を助けてくれることを願っています。私はかなり絶望しています...何らかの理由で、問題のある行がなくてもChromeはファイルをダウンロードし続けます(削除しても。htaccessファイル)、IEおよびOperaはページを表示します。
編集:Operaもファイルをダウンロードしたい(index.htmlまたはindexが呼び出されます)。
ブラウザは、2つのヘッダーに基づいてファイルをダウンロードします。
curl というコマンドラインツールを使用して、Webサイトのヘッダーを確認します。
curl -s -D - 'http://example.com/' | head -n 20
ページをダウンロードしたくない場合は、Content-Type
をtext/html
またはtext/html;charset=UTF-8
に設定し、Content-Disposition
ヘッダーがないようにする必要があります。
Content-Type
ヘッダーがapplication/octet-stream
のようなものである場合、ブラウザーはページをダウンロードとして保存することを提案します。 Content-Disposition
などのattachment; filename=foo.html
ヘッダーがある場合は、ダウンロードダイアログボックスも表示されます。
通常、次のようなAddType
ディレクティブを使用して、Content-Type
から.htaccess
を制御できます。
AddType text/html .html
.shtml
ファイルに対して既にこれを行っていることがわかります。 .html
や.htm
など、他の拡張機能についても同じようにする必要がある場合があります。
これは、これらの拡張子を持つファイルのデフォルトのタイプですが、Webアプリケーションによって裏付けられている場合、そのWebアプリケーションを実行するコードは通常、それらをオーバーライドする機能を備えています。ほとんどのWebアプリケーションフレームワークには、Content-Type
とContent-Disposition
の両方を設定するために使用できるある種のsetHeader
ディレクティブがあります。 .htaccess
ファイルを確認することに加えて、Webサイトを動かすコードを確認する必要があります。