• ベストアンサー

拡張子をhtmlにすることのメリット・デメリット

サイトでこんな文章を見つけました http://www.80code.com/kb-ja/fr_index.html?/kb-ja/php45.html ----------------------------------------------- また「application/x-httpd-php」と指定いたしますとサーバー標準のPHPが利用されます。下記のテキストですと.htmlの拡張子でサーバー標準のPHPが実行されます。 AddHandler application/x-httpd-php .html ------------------------------------------------ htmlの拡張子でphpを動作させることのメリット・デメリットを教えてくれませんか。 私が思うメリットは、 1.require_onceを使うと、複数のページの共通部分の管理が楽になる。 2.htmlなのでSEO対策になる デメリットは 1.サーバーの負荷が高くなる (でも実際にどのくらいの負荷なのかわからない) です。 こういう考えで正しいのでしょうか。

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

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

  • ベストアンサー
  • inu2
  • ベストアンサー率33% (1229/3720)
回答No.3

私も同じく 拡張子をhtmlにすればPHPで動いていると認識させない くらいしか思いつきませんね メリット1と2はPHPでも変わりないですよ デメリットとしては ・複数人で開発している場合は、ファイル名だけでは素のHTMLファイルなのか、PHPファイルなのか分かりにくい ・開発環境で使っているエディタや、ツールでPHPファイルだと認識してくれない可能性もある >「サーバーの負荷が高くなる」というのは、htmlに比べて、という意味です。 拡張子がHTMLでも、中身がPHPなら負荷は変わりませんよ そりゃぁ、素のHTMLと比べれば別ですが… 論点がずれますよね

その他の回答 (5)

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.6

デメリットについてはもう他の方が書かれていますが処理負荷が多少なり増えるところでしょうか・・・ しかし、これは毎回コンパイルする場合の話で、ネット上のサービスや企業のページなどの様にプリコンパイル方式にしておけば負荷が増えることはありません。 メリットとしてはphpを隠蔽できることでしょうが、たいして意味がないです。他にはHTMLを途中で動的に変えたい場合などに便利ではないでしょうか? htmlとphpを分離しているとリンクを変えなければなりませんが、すべてhtmlにすることでリンクを変える手間が省けるってところでしょうか?これもほとんど意味がなさそうですね・・・

  • taseki
  • ベストアンサー率66% (155/233)
回答No.5

よく似ているもので、 AddHandler server-parsed .html と書いてSSIを拡張子shtmlではなくhtmlにする、というものがあります。ようは今回のご質問も同じですね。 で、負荷については、「ただ渡すだけでいい」ファイルだったのが、これによってサーバーはパースして必要なら実行する、という処理が増える分、若干高くなります。 とは言え、あくまでも私の経験では、実感するほど、あるいは問題になるほど負荷が高くなった経験はないです。もちろん具体的な数値がないので曖昧な情報ですが、数百ページまでのサイトなら、特に問題ないように思います。というか、試してみるのが一番かもしれませんね。 で、メリットについて、まずSEOは特に変わらないと思いますが、管理については、どうでしょう、もちろん各人のやり方はあると思いますが、プレーンなHTMLとスクリプトが外から見分けがつかないというのは、私は不便に思います。 前述のSSIであれば、単にファイル更新日時を表示させるだけとか、そうでなくても完全にスクリプトは外にあるわけで、中身の文法的にもむしろHTMLとして扱ったほうが便利ですが。 ちなみに、URIでいう拡張子というのは意味を持ちません。つまり何でも構わないということです。 たしか、一昔前にiMacが発売された当初、アップル社のページの拡張子が「~~.iMac」になっていましたね。

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.4

こんにちは。 質問者様が言う負荷が高くなるというのは 通常のhtmlもPHPとして見てしまうからということでしょうか? PHPを使用していないhtmlをPHPとして読み込むと思うので AddHandler application/x-httpd-php .html 上記の設定をした場合、サーバの負荷は上がると思います。 (PHPで処理してようがなかろうがPHPとしてサーバ上で実行する為?)

  • slash_t
  • ベストアンサー率60% (6/10)
回答No.2

はじめまして。 ttyp03さんと同じく、 >htmlにすることで利用者にはPHPが動いていることを意識させない しか思いつかないです。 特にメリット、デメリットにもならないかなと思います。 require_onceを使うと~ とありますが、htmlという拡張子でなくてもphpのままで使えるかと思います。 ↑の指摘が質問者様が意図している事とずれた回答でしたら申し訳ありません。

  • ttyp03
  • ベストアンサー率28% (277/960)
回答No.1

この質問を見て、なるほど~と思ったので自分なりに考えてみました。 htmlにすることで利用者にはPHPが動いていることを意識させない(メリット?デメリット?) これくらいしか思いつきませんでした…。 質問者さまのいうデメリットは、元々PHPで出来ているものだからサーバの負荷は変わらないのではないかと思われます。

partita
質問者

補足

「サーバーの負荷が高くなる」というのは、htmlに比べて、という意味です。言葉足らずでした。

関連するQ&A

  • .htaccessの中身が php5 CGI版で動かない

    拡張子htmlファイルをphpファイルと認識させる為に、 .htaccessで AddType application/x-httpd-php .html AddHandler x-httpd-php .html と書いて対応していました。 今まではサーバーのphpのバージョンがPHP4(DSO版)だったのですが、昨日サーバーのバージョンがPHP5(CGI版)になってから、上記のような.htaccessが機能しなくなってしまいました。 order deny,allow deny from all ↑ これはちゃんと動くので、.htaccess自体が拒否されてるみたいなことはないと思います。 AddType application/x-httpd-php .html AddHandler x-httpd-php .html ↑ このプログラムがPHP5 CGI版にて意図した動作とならないのです。 何か分かる方いらっしゃいましたら、宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 拡張子がhtmlでもphpスクリプト実行したい

    webサーバがApacheの、レンタルサーバーでホームページを作っております。フレームの代わりにphpのincludeを使ってメニュー等を表示しています。しかし最終的に表示されるページの拡張子がphpでないと、きちんと表示されません。拡張子がhtmlでもphpスクリプトが実行されるようにしたくて、色々調べていたのですが、それらしき方法を発見しました。 Apacheで言えばhttpd.confの AddType application/x-httpd-php .php というところを例えば AddType application/x-httpd-php .php .html にするだけで、*.phpでも*.htmlなファイルであってもそこに埋め込まれているPHPスクリプトは実行されるようになる。 …とあったのですが、何をどう加えるか、もしくは変えればいいのかサッパリです。 もっとこっちの方が簡単だ、など、詳しい方いらっしゃいましたら、どうか宜しくお願い致します。

    • ベストアンサー
    • PHP
  • .htaccessの中身が 動かない

    拡張子htmlファイルをphpファイルと認識させる為に、 .htaccessで AddType application/x-httpd-php .html AddHandler x-httpd-php .html と書いて対応していました。 ファストサーバーのキガント2です。 HTMLが入ってるフォルダと同じ場所に.htaccessを入れて見ましたが、 php5 DSO版版もCGI版もだめでした。 何か分かる方いらっしゃいましたら、宜しくお願い致します。

    • 締切済み
    • PHP
  • Apache, httpd.conf設定 - .htmlでphp/ssi共に使えるようにするには?

    いつもありがとうございます。 Apacheの設定に詳しい方に質問です。 拡張子.htmlでphp使えるようにhttpd.confまたは.htaccessに記述するヤツありますよね。あのやり方は知ってるのですが、いままでうちでそれをやると.htmlファイルがダウンロードされてしまうという現象があったのですが、今日ようやくその原因がわかりました。ssiの記述とカブってるとダメなのですね。 AddHandler server-parsed .shtml .html AddType application/x-httpd-php .html と書くとうまく動きません。ssiは動くけど、phpはダメです。 それでその回避策として以下のように書くというのを教わりました。 AddHandler server-parsed .shtml .html AddType application/x-httpd-php .htm すると、 .html -> ssi .htm -> php という風に確かに動くんですが、これではちょっと困る。 既にサーバ内のあちこちで.htmlにてssiを多用してしまっているのです。 そこで質問なのですが、ssi&php共に、.htmlで動く方法はあるんでしょうか? 環境:Fedore Core 4 + Apache2.0.54 + PHP Version 5.0.4 よろしくお願いします。

  • html拡張子のままphpを使いたい

    類似質問を先日立てましたが状況変わったので改めさせて頂きました。 よろしくお願いします。 html拡張子のままphpを動かしたいのですが、うまくいきません。 PHPバージョン:5.3.3 Server API:CGI版 レンタルサーバー phpinfo()で確認した情報:REDIRECT_HANDLER存在しない 1).htaccessに以下書いたが動かない。 ※ AddType application/x-httpd-php .php .html ※ AddHandler application/x-httpd-php .php .html ※ AddHandler php5.3.3-script .html (php_flag allow_url_fopen on、php_flag allow_url_include on 追加も試し済) 2)Telnetなどは使えない。 http://www.hlplus.jp/php/blog/index.php?UID=1293208553 上記が検索でかかったので参考にしたのですが、 残念ながら権限の関係で上記URLの方法は使えませんでした。 3).php時には正常に稼働 html内に記述しているのはincludeとechoのみで、.php拡張子の場合は動作するのは確認済です。(htmlに名前変更したとたんにソースにそのまま出る、ないしダウンロードになって動作しない) ■構造など /php/base.php /file/a/a/a.html base.php <?php $a='<div id="~~~">~~~~~</div>'; ?> a.html <?php include_once(dirname(__FILE__).'/~~~~/php/base.php'); ?> <!doctype html> <html lang="ja"><head><meta charset="utf-8"><title>~~~</title> </head><body> <header><?php echo $a; ?></header> (省略) </body></html> 構造としてはこんな感じで、base.phpをa.htmlへインクルードしています。 考えられる可能性があればご教授頂けると幸いです。

    • ベストアンサー
    • PHP
  • 拡張子を隠す方法について2

    以前拡張子を隠すご質問を行い、とりあえずやってみようと色々とやってみたのですが反映されずエラーになってしまいます。 調べた結果、共有サーバーのため.htaccessに制限がありました。 ◇ ご利用いただけない記述の例 DirectoryIndex 例:DirectoryIndex index.php index.shtml Digest認証 例:AuthType Digest mod_headers Header ディレクティブ 例:headers_module AddTypeの一部記述 AddType ディレクティブ 例:AddType application/x-httpd-php .php .html Options ディレクティブ 例:Options FollowSymLinks RewireEngineディレクティブ 例:RewriteEngine On 制限されているとは知らず試したものは ForceType application/x-httpd-php や AddType application/x-httpd-php なのですが、制限されている以上不可能なのでしょうか? php.iniは設定できるようです。 やりたいことはこのご質問と同じだと思うのですが http://soudan1.biglobe.ne.jp/qa5542492.html xxx.php を xxx のように拡張子を隠すのと xxx.php?id=123 を xxx.php/123 のようにGETで渡す番号だけにしたいということです。 何か設定で試したほうが良い方法がございましたら、どうかお知恵をお貸しください。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • 携帯サイト作成する場合の.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
  • バージョンアップしたら「次のファイルを開こうとして

    今はサーバーでPHP5.2を使用しているのですが、PHP5.4にバージョンアップしようと考えています。 しかし、いざサーバーの管理画面からPHP5.4にすると、サイトでページにアクセスする度に「次のファイルを開こうとしています」とダイアログが表示され閲覧できなくなってしまいました。 .htaccessを使用しhtmlファイルでphpを動かせるようにしています。これが関係している可能性があるとの書き込みを見ました。 現在、.htaccessには下記のように記述してあります。 「AddHandler php5.2-script .html .php AddType application/x-httpd-php .htm .html AddType application/x-httpd-cgi .htm .html AddType text/x-server-parsed-html .htm .html」 一番上のコードを下記のように変更してみましたが、結果は同じでした。 「AddHandler php5.4-script .html .php」 これはどのようにすれば「次のファイルを開こうとしています」のダイアログが表示されずPHP5.4が使用できるようになるでしょか? ご存知の方いらっしゃいましたらご教示ください。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPを拡張子htmlで動かすには?

     phpを拡張子.htmlでも動くようにしたいのですが・・・ .htaccessで AddType application/x-httpd-php .html を指定しています。 ブラウザで試してみると、 http://***.***.***/index.html = 動作OK http://***.***.***/ = ファイルのダウンロード となってしまいます。 ブラウザでファイル名を直接指定すれば問題ないですが、 index.htmlは、ブラウザからドメインのみ指定した場合 ファイルのダウンロードとなってしまいます。 また、サーバーはロリポップを使ってます。 解決方法がお分かりになる方いらっしゃいましたら、 よろしくお願いします。

    • ベストアンサー
    • PHP
  • 拡張子なしのファイルを稼働させる.htaccessの設定

    path_infoで動的ページの静的処理をしようとしています path_infoをつかって xxx.php?id=123 を xxx.php/123 や xxx.php/123.html などの入力で動くようにはできたのですが、.phpをはずすべく .htaccess内の設定でうまくいきません。 ネットで出てきた方法として2つ見つかったのですが、 <FilesMatch "^xxx$"> ForceType application/x-httpd-php </FilesMatch> とするとファイルが見つかりませんになります <FilesMatch "^xxx$"> AddType application/x-httpd-php </FilesMatch> とするとInternal Server Error(500 error)になります これは何が悪いのでしょうか。 どこをどうすれば拡張子なしで認識するようになるのでしょうか。 .htaccessの使用はサーバーで認められていて、以前からDirectoryIndexやErrorDocumentの設定をして使用しています PHPは4と5の両方で試しましたが、どちらでも同じ結果でした どうかお分かりの方ご教授ください。 よろしくお願いします。