PHPファイルを.htmlで動かす.htaccessの設定法

このQ&Aのポイント
  • PHPファイルを.htmlで動かす.htaccessの設定法について詳しく教えてください。
  • URLにあるシンガポール情報文化省認証のMISCのスクリプトを取り出してmisc.phpファイルを作成し、.htmlファイル内でincludeすることでMISC部分を表示することができます。しかし、.htmlファイルではこの方法が機能せず、.htaccessファイルにAddHandlerスクリプトを記述する必要があります。
  • AddHandler application/x-httpd-php .htmlのスクリプトを.htaccessファイルに追加することで、.html拡張子のファイルでもPHPスクリプトを動作させることができます。
回答を見る
  • ベストアンサー

PHPファイルを.html拡張子で動かす.htaccessの設定法

以下のURL: http://www.seanewsonline.com/dir1999/page22.htm の「シンガポール情報文化省認証 MISC GuestBook」行の「MISC」部分のスクリプト『<FONT STYLE="font-size:6.66mm" COLOR="#666600" SIZE="5"><B><A HREF="http://www.seanewsonline.com/misc/index.htm">MISC</A></B></FONT>』を取り出し『misc.php』と言うファイルを作り、アップロードしました。 その後で上記URLのページの『<FONT STYLE="font-size:6.66mm" COLOR="#666600" SIZE="5"><B><A HREF="http://www.seanewsonline.com/misc/index.htm">MISC</A></B></FONT>』部分を『<?php include'misc.php' ;?>』に置き換え、ファイル名を『page00.htm』及び『page00.php』として両方ともアップロードしました。 さらに『AddHandler application/x-httpd-php .html』と言うスクリプトを「.htaccess」ファイルにし、同じ場所にアップロードしました。 その結果、『page00.htm』の方は以下のURLのように「シンガポール情報文化省認証 MISC GuestBook」行の『MISC』部分が欠落して表示されました。 http://www.seanewsonline.com/dir1999/page00.htm しかし『page00.php』の方は以下のURLのように「<?php include'misc.php' ;?> 」が機能し、『MISC』部分が欠落することなく表示されました。 http://www.seanewsonline.com/dir1999/page00.php 質問:『page00.htm』の方も「<?php include'misc.php' ;?>」機能させるにはどうしたら良いでしょうか。

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

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

  • ベストアンサー
  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.1

AddHandler application/x-httpd-php .html ではなく、 AddHandler application/x-httpd-php .htm としなければいけないのでは?

fanzhao
質問者

お礼

早速有り難うございました。 確かにそうでした。

関連するQ&A

  • 「include()」関数の使い方について

     以下のURL(http://www.seanewsonline.com/misc/050702.htm)の<TEXTAREA>を『<?php echo '()'; ?>』の()部分に挟み込み以下のようなmisc.phpと言うファイルを作りました。 <?php echo'<TEXTAREA> echo'<align="left" class="txt1">&nbsp;<TEXTAREA id=textarea1 name=textarea1 style="HEIGHT: 180px; WIDTH: 300px; font-size: 9pt" rows="13" cols="70" wrap="soft" readonly> (略:英/中/日テキスト)</TEXTAREA>'; ?>  その後で以下のURL(http://www.seanewsonline.com/dir1995/page22.htm)のページの『シンガポール情報文化省認証』の行の下に、以下のようにmisc.phpを挿入、拡張子をphpに変えANSI方式で保存しました。  略 HREF="http://seanewsonline.com/GuestBook/index.php">GuestBook</A></B></FONT></TD></TR><?php include'misc.php';?> <TR><TD ALIGN="CENTER" VALIGN="TOP" COLSPAN="2" WIDTH="553"  略  そこでUnicode形式で保存したmisc.phpをアップロードしたところ以下のURLのように表示されました。 http://www.seanewsonline.com/dir1996/page22.php  またUTF-8形式で保存したmisc.phpをアップロードすると、以下のURLのように表示されました。 http://www.seanewsonline.com/dir1995/page22.php  挿入文/被挿入文共にunicode方式で保存した後アップロードしたところ以下のURLのようにエラーメッセージも、挿入文も表示されませんでした。 http://www.seanewsonline.com/dir1997/page22.php  質問1:被挿入文をANSI方式で、挿入文をunicode方式で保存した場合のみ挿入文が表示されますが、文字化けしてしまいます。文字化けさせない工夫はあるでしょうか。  質問2:ページの中ほどに挿入したにも関わらず、web上ではページの上部に表示されるのは何故でしょうか。中間に挿入するにはどうしたらよいでしょうか。

    • ベストアンサー
    • PHP
  • .htaccessで動的URLを静的化

    動的URLを静的化したいと考えています。 ネットで調べるとよくあるサンプルは RewriteRule ^/dir/([0-9A-Za-z]+)/([0-9A-Za-z]+)$ /dir/index.php?a=$1&b=$2 という風に「静的なURLにアクセスして、内部ではパラメータ付きのURLでの処理をさせる」 というパターンが多いのですが、私がやりたいのは逆で「動的URLにアクセスがあれば静的URLにリダイレクトをさせる」というものです。 理由は、 ・すでにサイトがある程度できあがっていて、既存のURLもある程度Googleにインデックスされている ・パラメータの組み合わせパターンが色々あるため上記のようなルールで対応できない などです。 そこで http://xxx.com/dir/index.php?a=01&b=02 や http://xxx.com/dir/index.php?b=02&c=03&x=999 といった動的URLを http://xxx.com/dir/a-01/b-02/ http://xxx.com/dir/b-02/c-03/x-999/ RewriteRuleを使ってこのような形で一旦301リダイレクトさせ、これをPHPの内部処理でパラメータ付きURLに戻すことによって既存のロジックを生かしたままURLを静的化できないかと考えています。 RewriteRuleの記述を色々書き換えて試してみたのですが、どうしてもやりたいようなURLの変換ができません。 どのように記述すればよいか、ご教授下さい。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • phpファイルをhtmlで表示されるようにするには?

    現在表示されている「page.html」ファイルは、メニュー部と、コンテンツ部の2カラム構成です。 そのメニュー部をphpファイルにしたくて、「page.php」内に「menu.php」をincludeしました。その結果、「page.php」で、今までと同じように表示されるようになりました(やったぁ!)。 しかし、「page.html」ではエラーページになってしまいます。「.htaccess」ファイル内に、「AddType application/x-httpd-php .html」と記載してアップロードしましたが、やはりエラーページです。 どうすれば、「page.html」で表示されるようになるでしょうか?ご教授お願いします。

    • 締切済み
    • PHP
  • PHPのインクルードの方法(初心者です)

    サイトの管理を一括で行いたいと思い、 いろいろ調べたところPHPのインクルードという方法を知りました。 いろいろなサイトを見て、その通りに実行してみたのですが、 500エラーになってしまいます(泣) やってみたのは以下の通りです。 1、「.html」なので「.htaccess」というファイルに AddType application/x-httpd-php .htm .html と記述してアップロード。 2、インクルードしたい部分をメモ帳に貼り付け、「●●.txt」で保存しアップロード。 3、メモ帳にコピペした部分を削除して、 <?php include_once("http://●●.com/▲▲.txt"); ?> と記述。 以上です。 詳しくわからないのですが、何階層にもなりそうなので 相対パスなら、いちいち指定するのに手間が掛かるので 絶対パスというので指定したいのですが、 「PERLの絶対パス」とか意味がわかりません(汗) 3のようにURLで指定するのは間違っているのでしょうか? いろいろいじってみたのですが、 一体どこがおかしいのかわかりません。 どなたかご教授お願いいたします。

  • 外部PHPファイルの読込みについて

    いつもお世話になります。 外部PHPファイルの読込みが、期待通りの動作をしません。 レンタルサーバ会社は、Aサーバ、Bサーバ 同じ。(条件同じ) allow_url_fopen は、defaultの ONです。 まずAサーバに、agent.phpをアップロード。agent.phpファイルの中身は、 <?php $agent =$agent = $_SERVER['HTTP_USER_AGENT']; ?> これを、Bサーバの、test.phpに読込み。test.phpの中身は、 <?php include("http://BサーバのURL/agent.php"); echo "<html><head><title>.....</title></head>\n"; echo "<body><p>UserAgent : " . $agent . "</p></body></html>\n"; ?> この場合、http://BサーバのURL/agent.phpを開いても、 UserAgent($agent)の値は出てきません。これは、どうしてでしょうか? 但し、Aサーバに、下記のPHPファイル(xyz.php)をアップロードして <?php echo "<p>あいうえお</p>\n"; ?> として、Bサーバのtest.phpの中身を <?php echo "<html><head><title>.....</title></head><body>\n"; include("http://BサーバのURL/xyz.php"); echo "</body></html>\n"; ?> として、test.phpを読み出すと、「あいうえお」と出力されます。 何故なのか、またどうしたら期待通り動作するのかを、教えて下さい。  よろしくお願いします。

    • ベストアンサー
    • PHP
  • phpとhtaccessのリダイレクト

    aというフォルダの中のhtmファイルからphpファイルを通して bというフォルダの中のファイルにアクセスさせています。 htmファイルからのリンクはxxx.php?file=../b/xxx.xxxのようにしています。 bのフォルダがサーバ容量を圧迫しているのでbのフォルダを読み込むときだけ別サーバから読み込むよう.htaccessでリダイレクトを Redirect permanent b/ http://xxxxx.com/b/ のようにしました。 直接bのフォルダの中を読み込めばリダイレクトされるのですが、aのフォルダからphpを通してbのフォルダにアクセスするとリダイレクトされません。 どのようにすれば動作させることができるでしょうか?

    • 締切済み
    • PHP
  • .htaccessのRewriteRule設定に関して

    PHPでプログラムを組み、.htaccessにてRewriteRule設定を したところ、エラーになってしまい、困っております。 具体的には list.php にて商品を10件表示にし、「次のページへ」 「前のページへ」の リンクで「次のページへ」をクリックすると、次の11件~20件、 「前のページへ」で1件~10件を表示するという、よくある仕様を 設定したページなのですが、 「次のページへ」をクリックした後、「前のページへ」を クリックするとプラウザが止ってしまいます。 もともと、list.phpはRewrite設定で下記のように 設定しております。 RewriteEngine on RewriteBase / RewriteRule ^list.htm$ /list.php?page=$1&rows=$1&category_id=1&query=&sort=item_id+desc [QSA] 元URLはlist.phpですが、list.htmに見せています。 その上でさらに次のページ、前のページへのリンク先も 静的URLに見せるよう、下記のように設定しました。 RewriteEngine on RewriteBase / RewriteRule ^list/([0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+).htm$ /list.php?page=$1&rows=$1&category_id=$1&query=&sort=item_id+desc [QSA] 上記で例えば list.php?page=0&rows=10&category_id=7&query=&sort=item_id+desc のものを list/0/10/7.htm と表示すると読み込みに異常に時間がかかり、プラウザが止ってしまうのです。 list/10/10/7.htm であれば正常に表示できるのですが・・・。 list.phpには下記のように記述しております。 if ( $_GET['page'] == '' ) $_GET['page'] = 0; if ( $_GET['rows'] == '' ) $_GET['rows'] = 10; if ( $_GET['sort'] == '' ) $_GET['sort'] = 'item_id desc'; // $delta = 3 * $_GET['rows']; if ( $_GET['page'] - $delta < 0 ) $s = 0; else $s = $_GET['page'] - $delta; if ( $_GET['page'] + $delta > $num_rows ) $e = $num_rows; else $e = $_GET['page'] + $delta; <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td align="center"><span class="x12"><? if ( $_GET['page'] >= $_GET['rows'] ) { ?> &nbsp;<a href="list/<?= $_GET['rows'] - $_GET['page'] ?>/<?= $_GET['rows'] ?>/<?= $_GET['category_id'] ?>.htm">≪前のページ</a> <? } ?> <? for ( $m = $s; $m <= $e; $m = $m + $_GET['rows']) { ?> <a href="list/<?= $_GET['rows'] - $_GET['page'] ?>/<?= $_GET['rows'] ?>/<?= $_GET['category_id'] ?>.htm"> <? if ( $m == $_GET['page']) echo "$color" . (( $m / $_GET['rows'] ) + '1') . "</font>"; else echo ( $m / $_GET['rows'] + 1 ) ?></a>&nbsp; <? } ?> <? if ( $num_rows > $_GET['page'] + 1 ){ ?> &nbsp;<a href="list/<?= $_GET['page'] + $_GET['rows'] ?>/<?= $_GET['rows'] ?>/<?= $_GET['category_id'] ?>.htm">次のページ≫</a> <? } ?></span></td> </tr> </table> どなたかお分かりになられる方がいらっしゃいましたら是非とも 御教授いただけますと大変たすかります。 足りない点などございましたらご指摘いただけますと幸いです。 早急に追記、回答させていただきます。 何卒、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • phpで外部ファイルを読み込んだ際のURLについて

    Webサイト全ページのヘッダーとサイドバー、フッターは同じ内容です。 そのため、Webサイトを更新するときの作業効率を考えて外部読み込みをしようと思っております。 以下の手順で、phpのincludeを使って、一応読みこむことはできました。 (1)「index.html」を「index.php」に拡張子を変更 (2)「index.php」の読みこませたい部分に次のように記述 <?php include('./header.html'); ?> (3)「header.html」を作成 以上の手順で、FFFTPでアップロードして、ブラウザで表示したら、読みこみに成功しておりました。 しかし、当然といえば当然なのですが、次ようにサイトのurlの拡張子がhtmlからphpに次ようになっておりました。※urlはダミーです。 http://www.sample777.com/index.php このままだと、全てのページのurlの拡張子がphpになってしまいます。 この場合、seoやユーザービリティ―などの観点から、何か問題はありますか? urlに表記されるphpの部分をhtmlのままにしたいのですが、何か方法はありますか?

    • ベストアンサー
    • PHP
  • Smartyでテンプレートの場所を指定する方法

    Smartyでテンプレートファイルの場所を指定するいい方法を教えてください。 公式マニュアルには基本的には(1)のようにやるのだと書いてあります。そして拡張セットアップとして(2)の方法が紹介されています。これなら「ディレクトリパスの設定を同じ変数に何度も割り当てる代わりに、一箇所でそれらを行う事が出来ます」とのことですが…。 しかし拡張セットアップの方法でも、プログラムファイル(.php)の中に環境依存の値を記述しています。私はJava開発の経験はあり、PHP開発の経験は無く、現在は趣味の範囲でPHPをやっています。 で、Javaの経験からすると、環境依存の値も設定ファイルのパスもプログラムファイルに書くことはまず無いので、(2)の方法でも気持ち悪く感じます…。また「ページを呼び出すたびに毎回setup.phpを呼ぶの?サーバー起動時に読み込むべき値・ファイルだろうが…」とも思ってしまいます。 …しかし私がどう感じるかは別として、実際の開発の現場ではどうすることが多いのか知りたくて質問をする事にしました。 質問は以下です。 [a]Smartyのテンプレートファイルのパスなどは、どこにどう書くことが多いのか? [b]Smartyに限らず、PHPという言語では、環境設定の値や設定ファイルのファイル名やパスを、プログラムファイル(.php)に書くのがあたりまえなのか?どうすることが多いのか。 [c]PHPではプログラムで使う値として、サーバー起動時に設定値・設定ファイルを読み込む一般的な仕組みがあるか?(サーバー設定値でもないのにphp.iniに書いてini_getで取得するなんてことが許される?他にもっとスマートな方法がある?) ※具体的な例を挙げて教えていただけると助かります。また、「あまりやらないけど、こうやったこともあるよ」などというイレギュラーなケースも教えていただけるとうれしいです。 よろしくお願いします。 --(1)index.php--------------------------------------------- <?php require_once(SMARTY_DIR . 'Smarty.class.php'); $smarty = new Smarty(); $smarty->template_dir = '/web/www.example.com/guestbook/templates/'; $smarty->compile_dir = '/web/www.example.com/guestbook/templates_c/'; $smarty->config_dir = '/web/www.example.com/guestbook/configs/'; $smarty->cache_dir = '/web/www.example.com/guestbook/cache/'; $smarty->assign('name','Ned'); $smarty->display('index.tpl'); ?> ----------------------------------------------------------- 基本的なインストール | Smarty http://www.smarty.net/docs/ja/installing.smarty.basic.tpl --(2)setup.php--------------------------------------------- <?php require('Smarty.class.php'); class Smarty_GuestBook extends Smarty { function __construct() { parent::__construct(); $this->template_dir = '/web/www.example.com/guestbook/templates/'; $this->compile_dir = '/web/www.example.com/guestbook/templates_c/'; $this->config_dir = '/web/www.example.com/guestbook/configs/'; $this->cache_dir = '/web/www.example.com/guestbook/cache/'; $this->caching = Smarty::CACHING_LIFETIME_CURRENT; $this->assign('app_name', 'Guest Book'); } } ?> --(2)index.php--------------------------------------------- <?php require('guestbook/setup.php'); $smarty = new Smarty_GuestBook(); $smarty->assign('name','Ned'); $smarty->display('index.tpl'); ?> ----------------------------------------------------------- 拡張セットアップ | Smarty http://www.smarty.net/docs/ja/installing.smarty.extended.tpl

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

    現在、phpでスマートフォン(以降「SP」と記載)対応サイトを制作しているのですが、 SPからアクセスされた時に、実際のURLを一部省略して表示させようとしています。 同じ内容でPCサイトが既にあり、PCサイトの下層にディレクトリを作成し、 その中にSPページを置いています。 具体的には、 --------------------------------------- http://www.******.com/****/[SPページ] --------------------------------------- という形のURLにアクセスされた時に、 アドレスバーの表示のみを ----------------------- http://www.******.com/ ----------------------- に変えたいと考えております。 尚、[SPページ]にはindex.phpを設置おり この部分のアドレス表記は省略可能です。 「.htaccess」の設定でリライトやリダイレクトが出来るようですが 実際どのように書けばよいのか、ご存知の方がいれば教えてください。 よろしくお願いします。  

専門家に質問してみよう