.htaccessでmimeタイプを設定する方法とは?

このQ&Aのポイント
  • 携帯用のサイト作成中に、DOCOMOでi-cssを適用させるために.htaccessを設定したが、いくつかの問題が発生した。
  • phpも使いたくなり、.htaccessにphpのmimeタイプを追加したが、i-cssが反映されなくなってしまった。
  • .htaccessまたは別の方法で、i-cssとphpを同時に扱えるようにする方法を知っている方、教えてください。
回答を見る
  • ベストアンサー

.htaccessによるmimeタイプについて

携帯用のサイトを作成中です。 DOCOMOでi-cssを適用させたいので .htaccessに「AddType application/xhtml+xml html」と入力し、改行して保存しました。 FFFTPでアップしたあと、DOCOMOの携帯から閲覧してみると、無事i-cssは適用されていました。 急きょ「php」も使いたくなり .htaccessに「AddType application/x-httpd-php html」を付け加え、改行して保存しました。 FFFTPでアップしたあと、DOCOMOの携帯から閲覧してみると phpは適用されましたが、i-cssが反映されなくなりました。 試行錯誤してみましたが、どうしても解決できませんでした。 .htaccess、もしくは別の方法で i-cssとphpを同時に扱えるようにする方法をご存知の方は ぜひご教授のほど、よろしくお願いいたします。

  • PHP
  • 回答数2
  • ありがとう数17

質問者が選んだベストアンサー

  • ベストアンサー
  • php504
  • ベストアンサー率42% (926/2160)
回答No.2

.htaccessが使えるんでしたね -------------- AddType application/x-httpd-php html php_value default_mimetype "application/xhtml+xml" -------------- で出来るかも

masarin16
質問者

お礼

php504さまへ 再度ご回答いただきまして、ほんとうにありがとうございます。 .htaccessに AddType application/x-httpd-php html php_value default_mimetype "application/xhtml+xml" を入力したところ 上記で <?php header("Content-type: application/xhtml+xml"); ?> が反映されたレンタルサーバには無事に反映されました。 けれど、 <?php header("Content-type: application/xhtml+xml"); ?> が反映されなかったレンタルサーバには、.htaccessに AddType application/x-httpd-php html php_value default_mimetype "application/xhtml+xml" を入力しても反映されませんでした。 こちらも、やはりHTMLの1行目に空行が入っているのが原因なのでしょうか?

その他の回答 (1)

  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

PHPを使う場合はPHPプログラムでmimeタイプを出力しないと行けません 何も指定しないときは既定の text/html となります PHPの先頭で <?php header("Content-type: application/xhtml+xml"); としたらどうでしょう。

masarin16
質問者

お礼

php504さまへ ご回答ありがとうございます。 <?php header("Content-type: application/xhtml+xml"); ?> をHTMLに挿入したら、無事にi-cssとphpが反映されました。 ただ、複数の無料レンタルサーバを借りているのですが レンタルサーバによっては反映されたり反映されなかったりがありました。 反映されなかった無料レンタルサーバのHTMLソースには 1行目に自動空行?が入っていましたので、ヘッダーがきちんと機能していないのが原因だと考えてよろしいでしょうか?

関連するQ&A

  • 携帯サイト作成する場合の.htaccess処理で困っています。

    携帯サイト(XHTML+CSS)の作成方法を勉強している最中で.htaccessファイルを作成していたのですがうまく動かない部分がありますのでお手数ですが対応方法をお教え頂けますでしょうか。 .htaccessでapplication/xhtml+xmlの情報を送り、さらにPHPファイルをhtmlの拡張子で動作できればと思い、いろいろなサイトの情報を集めて下記内容を作成しアップロードしたところ、Content-Typeがapplication/xhtml+xmlにならずにtext/htmlのままPHPプログラムが動作しました。(AddTypeを無視しているようです) [.htaccess] AddHandler x-httpd-php442 .php .html AddType "application/xhtml+xml; charset=Shift_JIS" .html AddHandlerの".html"を消すと今度はContent-Typeがapplication/xhtml+xmlになりますがPHPが動作しなくなります。 AddHandler x-httpd-php442 .php .htmlの1行を.htaccessに記述し、 HTMLファイル内に<?=header("Content-type: application/xhtml+xml");?>を入力すれば表示されるのですが、できれば.htaccess一つで済めばと思います、、、。 サーバーはKDDIウェブコミュニケーションズ(CPI)のX10プランを使用しています。このサーバーは注意事項として"弊社サーバーでは .htaccessファイルにてphp_valueおよびphp_flag はご利用いただけません"との文言がありました。(※php.iniの修正は可能のようです) 良い書き方があればお教え頂ければ幸いです。 何卒宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • AddTypeで指定したMIMEタイプが適用されない?

    次のような2つのファイルがhttp://example.example/にあるとします。 .htaccess (内容は下に表示) index.html (適当なxhtml文書) ---- .htaccess ---- AddType application/xhtml+xml html DirectoryIndex index.html ------------------- そこでhttp://example.example/にアクセスすると、 index.htmlへアクセスされるわけですが、 この時のMIMEタイプはtext/htmlになってしまいます。(サーバの元々の設定が適用される) http://example.example/にアクセスしてMIMEタイプapplication/xhtml+xmlで取得するにはどのようにすればいいのでしょうか。

    • ベストアンサー
    • HTML
  • PHPをHTMLで出力したい。

    PHPを使い、 仮にaaa.htmlの中にbbb.htmlというデータをインクルードして、 aaa.phpではなく、aaa.htmlとして出力したいのですが、うまくいきません。 .htaccessを 調べたらよく出てくる AddType application/x-httpd-php html を入れて 同じ階層にアップしてもうまくいきません。 具体的にどうなるかというと、~~/aaa.htmlと打つ(URL欄に)とダウンロードになってしまいます。(ページのaaa.htmlをデータをダウンロード) ブラウザはサファリです。 これはaaa.htmlのデータをxhtmlと宣言しているからでしょうか? AddType application/xhtml+xml html もいれて AddType application/xhtml+xml html AddType application/x-httpd-php html ともしてみたのですが、結果は同じです。 ちなみにaaa.phpでは問題なく表示されます。 レンタルサーバーでもphpは対応しています。 AddType application/xhtml+xml html AddType application/x-httpd-php html (改行) でもダメです、調べた限りをつくしました。。 解決策の程、宜しくお願い致します。

    • ベストアンサー
    • PHP
  • モバイルサイトのxhtmlでPHPを動かすときの.htaccess

    ご質問です。 モバイルサイトで、ドコモの対応のために「.htaccess」で「AddType application/xhtml+xml .htm .html」を設定していました。 問題なく稼動していましたが、アクセス解析のために「PHP」を動かせるようにする必要がでたため、xhtml内で「<?php print "<?xml version=\"1.0\" encoding=\"Shift_JIS\"?>"; ?>」を記述し、「.htaccess」に「AddType application/x-httpd-php .html」を追加しました。 「.htaccess」には下記のように記述されています。 AddType application/x-httpd-php .html AddType application/xhtml+xml .htm .html しかしこれでは、「PHP」がうまく動かず、 AddType application/xhtml+xml .htm .html AddType application/x-httpd-php .html の順で記述すると「xhtml」がおかしくなります。 調べていると「.htaccessではAddType application/x-httpd-php .htmlだけ記述し、HTTPヘッダでMIMEタイプを指定するためにPHPにて、header()関数で指定する」とありました。↓ header("Content-type: application/xhtml+xml" ); しかし、どこにどう記述してよいのかわからないでいます。 動かしたい「PHP」の内容は以下の通りです。 <?php function rt_tag($aqid){ $ref = getenv('HTTP_REFERER'); $ref = urlencode($ref); $my_url = urlencode("//".getenv('SERVER_NAME').getenv('SCRIPT_NAME')); if (!empty($my_url)) $rt_param[] = "/2=$my_url"; if (!empty($ref)) $rt_param[] = "/4=$ref"; $tag = "<img src=\"http://t7.aqtracker.com/cgi-bin/asp/tagx/h/$aqid"; foreach ($rt_param as $val) $tag .= $val; $tag .= "/blank.gif?guid=on\">"; echo $tag; } $_aqid = "5T555ELHERSGN664E86A"; rt_tag($_aqid); ?> どう記述を追加すればよいのか教えてくださいますか? またこれでやりたいことはできるのでしょうか? よろしくお願い致します。

    • ベストアンサー
    • PHP
  • .htaccessで、DOCOMOでのxhtml使用を可能(AddType application/xhtml+xml .html)にするとバグが・・・

    DirectoryIndex index.html index.shtml index.cgi index.php Options -Indexes Options ExecCGI Includes ErrorDocument 404 http://www.○○○○○.com/ AddType application/xhtml+xml .html 現在、通常のページがあり、モバイルサイトを構築中なのですが、DOCOMO端末でのxhtml使用ができず、.htaccessでAddType application/xhtml+xml .htmlの記述を入れてアップすると、PCサイトで閲覧するとIEでの表記でリンクのバグ(絶対パスではバグはでないが、相対パスだとダウンロードしますか?のような表記です)が出ます。 このような状況の回避方法など、もしご存知であれば、知恵をすこしお貸し下さい。宜しくお願い致します。 m_m

    • ベストアンサー
    • HTML
  • モバイルサイトの為に作った.htaccessの影響でPCサイトが見れなくなった

    当方、WEB関係の仕事していて、 某ポータルサイトを運営しているのですが、 携帯サイトのリニューアルということで、 まず携帯TOPページをxhtmlでより見栄えよく作ろうと色々調べた結果 docomoの癖が強く .htaccessというものをサーバーに上げる作業が必要みたいで AddType application/xhtml+xml .html と書いたものを上げました。 携帯サイトは無事CSSが適用され、 xhtmlを見れるようになりましたが、 もともとあったPCのWEBサイト(safariとfirefox)が見れなくなりました。IE6で見てるところ問題ありませんでした。 おそらく.htaccessが同ディレクトリにあるからだと思いますが、 携帯サイトもPCサイトも同じサーバー内多大な数のページがありまして 今の現状のままで .htaccessをいじってなんとかできないでしょうか? モバイルからのアクセスのみ適用されるなど。。 参考までにWEBページの共通のヘッダーが <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "​​http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">&a...​ <html xmlns="​​http://www.w3.org/1999/xhtml">​​ <head> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" /> 今回リニューアルのために作った携帯TOPのヘッダー <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE html PUBLIC "-//i-mode group (ja)//DTD XHTML i-XHTML(Locale/Ver.=ja/1.0) 1.0//EN" "i-xhtml_4ja_10.dtd"> <html xmlns="​​http://www.w3.org/1999/xhtml"​​ lang="ja" xml:lang="ja"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=Shift_JIS" /> .htaccessと携帯サイトのURLのディレクトリを変える以外の方法で いい方法があればよろしくお願いします。

    • ベストアンサー
    • HTML
  • MIMEタイプの設定を上書き

    お世話になっております。 今cgi-binの中でしかcgiが動かないサーバーを借りていてcgi-binの中からcssや画像を呼び出そうと考えております。サーバではcgi-bin以下はすべてcigスクリプトとして解釈するためそのままではいけません。 そのためいろいろやってみてすべてのファイルをcgiスクリプトとしてでなく画像ファイルなら画像、JSファイルならJSと認識させることに成功したのですが、 cssだけがなぜかうまくいきません。 以下そのために行ったことと調査結果です。 .htaccessが使えるので.htaccessに AddType image/jpeg .jpeg .jpg .jpe AddType image/png. png AddType text/html .html .htm AddType text/css .css (略...) AddHandler image/jpeg jpeg jpg jpe AddHandler image/png png AddHandler text/html html htm AddHandler text/css css (略...) と書いてみたのですが、cssがiE以外に効きませんでした。画像に関してはimgタグで指定した画像はどのブラウザでも正しく表示できています。 ブラウザに直接アドレスを叩くと全部正常にDLできました。 cgi実行ファイル .htaccess  |  ┣━━commoms  |画像ファイル  |画像ファイル  |hoge.css  |(以下略) このような構成になっていてcgiが出力するhtmlで読もうとしているのはhoge.cssです。 炎狐のFirebugで調べたところ 「MIME タイプが "text/css" ではなく "application/x-httpd-cgi" となっているため、スタイルシート"xxx.css"は読み込まれていません」 とエラーが出ました。 いろいろググったのですが、結局ここまでしかわかりませんでした。 AddTypeでMIME タイプは上書きていると書いてあるところがあったのですが、ほんとでしょうか? どなたか、サーバーの初期設定値"application/x-httpd-cg"から"text/css"に変える方法を教えてください。どうかよろしくお願いします。

    • ベストアンサー
    • CGI
  • .htaccessの設定について

    .htaccessで 「AddType "application/xhtml+xml;charset=Shift_JIS" .html 」 を設定。 ホームページフォルダ ├イメージフォルダ ├モバイル用フォルダ ├.htaccess └index.html  としています。 しかし、index以外のファイルなどには反映されないようにしたいのですが、どのようにしたら良いでしょうか?

  • モバイルサイトの為に作った.htaccessの影響でPCサイトが見れなくなった

    当方、WEB関係の仕事していて、 某ポータルサイトを運営しているのですが、 携帯サイトのリニューアルということで、 まず携帯TOPページをxhtmlでより見栄えよく作ろうと色々調べた結果 docomoの癖が強く .htaccessというものをサーバーに上げる作業が必要みたいで AddType application/xhtml+xml .html と書いたものを上げました。 携帯サイトは無事CSSが適用され、 xhtmlを見れるようになりましたが、 もともとあったPCのWEBサイト(safariとfirefox)が見れなくなりました。IE6で見てるところ問題ありませんでした。 おそらく.htaccessが同ディレクトリにあるからだと思いますが、 携帯サイトもPCサイトも同じサーバー内多大な数のページがありまして 今の現状のままで .htaccessをいじってなんとかできないでしょうか? モバイルからのアクセスのみ適用されるなど。。 参考までにWEBページの共通のヘッダーが <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "​http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">​ <html xmlns="​http://www.w3.org/1999/xhtml">​ <head> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" /> 今回リニューアルのために作った携帯TOPのヘッダー <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE html PUBLIC "-//i-mode group (ja)//DTD XHTML i-XHTML(Locale/Ver.=ja/1.0) 1.0//EN" "i-xhtml_4ja_10.dtd"> <html xmlns="​http://www.w3.org/1999/xhtml"​ lang="ja" xml:lang="ja"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=Shift_JIS" /> よろしくお願いします。

  • .htaccessでの設定について

    はじめまして。 .htaccessの設定で質問があります。 .htaccessで「AddType application/x-httpd-php .html」と設定し、 PHPのファイルをhtmlの拡張子で表示するようにしています。 全てのファイルで.htmlがPHPとして動作しないように、 <Files index.html> AddType application/x-httpd-php .html </Files> としています。 上記の設定でindex.htmlだけPHPとして動作すると思いますが、 これをあるDirectoryのindex.htmlだけに限定することはできないのでしょうか。 具体的には、 /htdocs/index.html では、PHPとして動作し、 /htdocs/test/index.html では、PHPとして動作しないようにしたいのです。 よろしくお願いします。

専門家に質問してみよう