• 締切済み

htmlファイルでPHPとSSIを有効にさせる方法

htmlファイルで、PHPとSSIの両方を有効にさせる方法について教えて頂きたいです。 下記のように、htmlでPHPとSSIを両方とも有効にしたいと思い、 htppd.confファイルを下記のようにしたところ、PHPは有効になったのですが、SSIが無効になってしまいました。 おそらく、SSIの記述が、PHPの記述で上書かれてしまったのだと思いますが、htmlで、PHP,SSI両方を有効にする方法はありますでしょうか? htmlファイルの内容 --------------------------------------------------- (省略) <?php include("/life_contents/login_check.html"); ?> (省略) <!--#include virtual="/resource/ssi/login/status.html" --> (省略) --------------------------------------------------- httpd.confの内容 --------------------------------------------------- (省略) AddType text/html .html .htm .shtml .shtm AddOutputFilter INCLUDES .html .htm .shtml .shtm (省略) AddType application/x-httpd-php .html (省略) ---------------------------------------------------

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

みんなの回答

回答No.1

普通に考えてできないと思います。 AddType text/x-server-parsed-html .html AddType application/x-httpd-php .html これらは拡張子がhtmlの場合にSSIとして読み込む、またはPHPとして読み込むといった意味を含んでいます。 逆に、PHPとして読み込んだ場合SSIとして読み込む必要があるのでしょうか? PHPでSSIの処理は実現できるかと思いますが。

masuke1978
質問者

お礼

mookun2007さん、ありがとうございます。 やはり、できないのですね。 以下のサイト http://72.14.235.132/search?q=cache:d5xMqCPeeTAJ:homepage1.nifty.com/yito/namazu/gbook/20040222.0321.html+PHP%E3%81%A7SSI%E3%81%AE%E5%87%A6%E7%90%86&hl=ja&ct=clnk&cd=1&gl=jp を見ると、 「PHPのincludeでSSIのinclude virtualを置き換えて すべて表示させることができました。」 とあるので、 <!--#include virtual="/resource/ssi/login/status.html" --> を <?php include("/resource/ssi/login/status.html"); ?> とすればうまくいけるでしょうか? もしご存じでしたらアドバイス頂ければと思います。

関連するQ&A

  • 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 よろしくお願いします。

  • SSI される .inc ファイル内に PHP を記述したい…が…

    お世話になっております。 .html から、SSI で .inc ファイルを呼び出し、その inc ファイル 内に記述の PHP を実行したいと考えております。 例えば、test.html に   <!--#include virtual="../include/inc/meta.inc"--> のような記述があり、include.inc に   <?php echo "test"; ?> のように記述があった場合、php4 では test と表示されるのですが、 php5 では、   <?php echo "test"; ?> がそのまま出てきてしまいます。 php4 と php5 の httpd.conf の違いは   LoadModule php4_module C:/php446/sapi/php4apache2.dll   LoadModule php5_module c:/php525/php5apache2.dll の行のみです。(いずれかをコメントにし、4と5を切り替え) 以下、httpd.conf の SSI の動作に影響を及ぼすと思われる 行を抜粋します。(コメント行も含みます) 環境は WINDOWS&Apache2 です。 <Directory /> Options FollowSymLinks MultiViews Includes ExecCGI AllowOverride All </Directory> <Directory "C:/Program Files/Apache Group/Apache2/htdocs"> Options All AllowOverride None Order allow,deny Allow from all </Directory> AddType application/x-httpd-php .inc .html .php #AddHandler server-parsed .shtml .html #AddType text/html .shtml .html .inc AddOutputFilter INCLUDES .shtml .html .inc #<Files *.html> #ForceType text/html #SetOutputFilter INCLUDES #</Files> #<Files *.shtml> #ForceType text/html #SetOutputFilter INCLUDES #</Files> #<Files *.inc> #ForceType text/html #SetOutputFilter INCLUDES #</Files> 原因は php.ini ですかね? ご存知の方、ご教授下さい。

    • ベストアンサー
    • PHP
  • PHP+SSI

    「index.php?a=100」のようなページをSSI(ssi.shtml) から実行したいと考えています。 ところがssi.shtml内で <!--#exec cmd="index.php 100"--> とし index.php内で引数渡しの設定として「$argv[0]」として ますが、ssi.shtmlを実行しても実行結果を返さずブランクに なってしまいます。index.phpのパーミッションも実行可能に 設定しているのですが…。  上記以外の方法でも結構ですので、SSIで引数付きのPHPを 実行する方法をご存じの方がいらっしゃいましたら、教えて ください。 Apache 1.3.31+PHP 4.3.1で動いています。もちろんSSIで #execがNGなんてオチも有りません。 なお、下記URLによればSSIからの引数渡し自体はCGIだと可能の ようですが…。 http://tohoho.wakusei.ne.jp/wwwssi.htm#Exec

    • 締切済み
    • PHP
  • htmlファイルにPHPとCGIを埋め込む

    ロリポップサーバーをレンタルしてサイトを開設しています。 現在.htaccessファイルに下記のコードを記述して.htmlファイルにPHPのコードを埋め込んで実行させています。 「AddType application/x-httpd-php .htm .html」 これは問題なく動いているのですが、別に.htmlファイルにCGIのコードを記述し動作させたいと思っているのですが、これは可能でしょうか? .htmlファイルのまま、PHPとCGIのコードを一緒に記述し動作させたいです。 .htaccessで上記のコードの下に「AddType application/x-httpd-cgi .htm .html」というコードを記述してみましたが、動作はしませんでした。 埋め込みは下記のようにしました。 「<!--#include file="cgiファイルまでのパス" -->」 ご存知の方いらっしゃいましたらご教示ください。 よろしくお願いします。

    • 締切済み
    • CGI
  • ssi がうまく動作しません。

    サーバ会社に訪ねると.htaccessに AddType text/html shtml を記入して下さいとのことでした。 以下の方法でためしましたが、エラーがでるわけでもなく、<!--#INCLUDE VIRTUAL="/ssi/xxx.shtml"--> にした部分だけが表示されません。 http://aaa.com/bbb/ccc/ddd.html .htaccess は、bbbのファイル内におきました。 1, ssi/xxx.shtml は、indexと同じトップの階層におきました。 ddd.html に  <!!--#INCLUDE VIRTUAL="/ssi/xxx.shtml"--> を記入しました。 2, ssi/xxx.shtml は、bbbのファイル内において、ddd.html に <!--#INCLUDE FILE="/ssi/xxx.shtml"--> を記入してみましたが、これもだめでした。 パーミッションも何がいいのか、お分かりでしたらお願い致します。 ちなみに777にして試したのですが、だめでした。

    • ベストアンサー
    • CSS
  • .htaccessによる制御 phpとssi

    某ポータルサイトを運営しておりまして サイトはxhtmlで作っています。(拡張子はhtml) そこではssiを使用していて、一番トップのディレクトリ(index.htmlがあるところ)には .htaccess ------------------------------------------------------------------------------------- Options +Includes AddType text/html html .shtml .html .htm .xhtml AddHandler server-parsed html .shtml .html .htm .xhtml ------------------------------------------------------------------------------------- を設置しております。 これで問題なくhtmlの拡張子で表示しております。 次に 新しくサイトリニューアルしようとphpを使いサイトを作っていまして、 そのページ(xhtmlで作って拡張子はhtml)が入ったフォルダをアップしまして トップより下の階層(そのリニューアルページが入ったフォルダ)に.htaccessを ------------------------------------------------------------------------------------- AddType application/x-httpd-php .php .html .xhtml .shtml ------------------------------------------------------------------------------------- と書いたものをあげました。 ところがページを見るとダウンロードになってしまい、ページを読み込むことができません。 .htaccessを削除するとページは表示されますが、phpが有効になっていません。 試しにトップの階層の ssiを有効にする.htaccessを消して phpを有効にする.htaccessだけ残すと 問題なく表示されます。 上の階層のssiを有効にする.htaccessがある限りページはダウンロードになってしまいます。 .htaccessは下の階層ほど優先されるはずが、 「優先」というだけで「上の階層のは読まない」わけではないんですよね? おそらく問題は トップの階層にある、ssiを有効にする.htaccessだと思いますが なんとか旧ページのssiを有効にしつつ、新ページのphpを有効にする両方有効にする手段はないのでしょうか? 疑問(1)phpとssiは同時に動かない? 疑問(2).htaccessで下の階層だけ読んで上の階層の.htaccessは読ませない設定はあります? 疑問(3)下の階層の.htaccess(phpを有効にするhtaccess)の方で上のssiの設定を打ち消す書き方はあります? 参考までに階層はこうなっています index.html hoge.html .htaccess(ssiを有効にする設定) new ├.htaccess(phpを有効にする設定) ├salon1 |  ├index.html(問題のページ1) |  ├imgフォルダ |     ├aaa.jpg ├salon2 |  ├index.html(問題のページ2) |  ├imgフォルダ |     ├aaa.jpg ・ ・ ・ ちなみに問題のページのディレクトリに直接htaccessを置いてもダメでした。 お願いします

    • ベストアンサー
    • PHP
  • PHPとshtmlのhtml化共存方法を知りたいです。

    宜しくお願いします。 現在サーバーで何故か拡張子、.phpと.shtmlが共存している部分があります。 そこで、全てをhtmlにしてやりたいのですが、一緒にする方法が分かりません。 色々調べた結果、各設定方法は分かりました。 phpの場合 AddType application/x-httpd-php .html shtmlの場合、 AddType text/x-server-parsed-html .html と記述するようで、個々で調べると確かに動作しました。 ただ、同じ.htaccess内に2つ同時に記述すると、phpの方だけ表示が出来なくなるのです・・・。 AddType application/x-httpd-php .html AddType text/x-server-parsed-html .html これらを実現する為にはどういう風に記述したらよいものでしょうか?? すみませんが、詳しい方がおられましたらアドバイスいただけないでしょうか? 宜しくお願いいたします。

  • Apache2.2でPerlを呼び出すSSIを使ったHTMLをloca

    Apache2.2でPerlを呼び出すSSIを使ったHTMLをlocalhostで動かそうとしています。 exec cmdをHTMLファイルに埋め込みました。インターネットのApacheでSSIを使う方法を読み,httpd.confの中に Options FollowSymLinks Multiviews の後にIncludesをつけ 念のため Options Indexes FollowSymlinks の後にもMultiviews Includes をつけ   AddType text/html .shtml と AddHandler server-parsed .shtml を加えました。しかし、localhostで実行するとHTMLのSSIの部分だけ表示されません。 (アクセスカウンターのカウンターだけ表示されません)。どうしたらよいのでしょうか。 どなたか解決できるかた、回答よろしくお願いします。

  • Apach2でSSIコマンドが実行出来ないのですが教えてください

    環境は、自宅サーバ、WindouwsXP、Apache/2.0.53 (Win32) PHP/4.3.10 mod_jk2/2.0.2です。 [httpd.conf SSI関連設定] AddType application/x-server-parsed .shtml AddHandler server-parsed .shtml AddHandler cgi-script .cgi .pl .bat [SHTMLファイル] <HTML><HEAD><TITLE>counttest</TITLE></HEAD><BODY> あなたは<!--#exec cmd="countlog/count.pl" -->人目のお客様です。 </BODY></HTML> [count.plファイル] #!c:/perl/bin/perl $file="C:/ProgramFiles/Apachegroup/Apache2/htdocs /nandemokan/countlog/numfile"; open(FILE, "<$file"); #人数ファイルを読んで 以下省略 http://localhost/nandemokan/index.shtml [SHTML実行結果] あなたは人目のお客様です。 http://localhost/nandemokan/countlog/count.pl [直接SSIを指定した結果] Internal Server Error なお、コマンドプロンプトからcount.plを実行すると 正常にカウンタが出力されます。 ANHTTPDではうまくいったのですが、Apache2で出来なくて困っています。よろしくお願いします。

    • ベストアンサー
    • CGI
  • Apach での SSIとCGIとPHP

    Redhat Linux9.0 Perl-5.8.0-88.3 php-4.2.2.-17.2 ですが。。。 ユーザーディレクトリでPerlが動かなくて困っています。 通常、httpd.conf の <Directory /home/*/public_html> の部分に Options MultiViews Indexes SymLinksIfOwnerMatch Includes ExecCGI で動くと思うのですが、なぜかダメでした。 Error message: Premature end of script headers: test.cgi それで、httpd の フォルダを見たところ conf.d/perl.conf というのがあり、そこに次の様に記述したら、perlは動きました。 <Directory /home/*/public_html> SetHandler perl-script PerlHandler ModPerl::Registry::handler PerlOptions +ParseHeaders Options +ExecCGI </Directory> しかし、こうすると今度は SSI と PHP が動かなくなりました。 You don't have permission to access the requested object. It is either read-protected or not readable by the server. なお、上のディレクティブをコメントアウトすると、SSI と PHP はOKです。 この場合、PerlとPHPとSSIのすべてを動くようにするにはどうしたらいいのでしょうか? よろしくお願いします。

専門家に質問してみよう