.htaccessによる制御 phpとssi

このQ&Aのポイント
  • ウェブサイトの制御には.htaccessファイルを使用しています。新しいPHPページと古いSSIページを両方有効にするには、設定の順序に注意する必要があります。
  • 新しいPHPページを有効にするためには、下の階層に.htaccessファイルを配置する必要があります。しかし、上の階層にあるSSIページの設定は引き継がれてしまいます。
  • 両方のページを有効にするためには、下の階層の.htaccessファイルで上の階層のSSI設定を無効化する必要があります。これにより、PHPページが正常に表示されます。
回答を見る
  • ベストアンサー

.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を置いてもダメでした。 お願いします

  • peco33
  • お礼率79% (123/154)
  • PHP
  • 回答数1
  • ありがとう数3

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4844/10254)
回答No.1

同じディレクティブだと、下の階層が上の階層を置き換えますが、違うディレクティブだと自動的には無効にならないと思いますよ。つまり、 AddHandler server-parsed html .shtml .html .htm .xhtml AddType application/x-httpd-php .php .html .xhtml .shtml の両方が生きているのでしょう。RemoveHandlerを使ってみては? http://httpd.apache.org/docs/2.2/ja/mod/mod_mime.html#removehandler

peco33
質問者

お礼

ありがとうございます!! AddType application/x-httpd-php .php .html .xhtml .shtml RemoveHandler .html このように表記したところ 旧サイトも新サイトもhtmlの拡張子で 今の所問題なく表示されました!!

関連するQ&A

  • 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
  • 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
  • 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の使用について

    SSIの使用について SSIを使用してサイトを作成予定です。読込み側の拡張子はshtmlで読み込まれる側の拡張子はhtmlでどちらも静的なページです。 SEOについて質問なのですが昔は、ページの拡張子がhtmlじゃなければ効果が得られないなどとありましたが今はhtmlやphpでも特に関係なく「index.php?id=x」などの動的なパラ―メータが付属していなければ然程問題ない感じで捉えられていますよね? 調べた見たところshtmlではなくhtmlでもSSIの使用ができるようなのですが他のhtmlをSSIとして扱われる為にサーバーの負荷が高くなるとありました。 確かにその通りだと思うのですが実際どの程度の負荷が掛かるものでしょうか? 上記でパラメータがなければ問題ないと述べたばかりですが可能なものならばやはりhtmlでSSIを動作させるべきなのか悩んでおります。 うまい回避策などもありましたらアドバイスもいただけますと幸いです。

    • ベストアンサー
    • HTML
  • 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
  • .htaccessの設定について

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

  • htaccessでphpとSSIを同時に動かす?

    http://www.dspt.net/tools/emoji/と同じように絵文字変換できるようにしたのですが、htaccessにAddHandler server-parsed htmlをすることになるので、今まで使っていたアクセス解析の「うごくひと2」が使えないです。 SSIとPHPをhtaccessで同時に動かすことは可能ですか? http://sb.xrea.com/showthread.php?t=14639で質問しているかたとほぼ同じ状況ですが、私はこの方法だとエラーになってしまいます。 ちなみにxhtmlではなくhtmlで作っています。 サーバーはハッスルです。 うごくひとを動かしていたときはAddHandler x-httpd-php .htmlをhtaccessに記述すると動作しました。 htaccessにAddHandler server-parsed htmlと AddHandler x-httpd-php .htmlをhtaccessに記述すると、絵文字が表示されるけどうごくひとは文字化けしてしまいます。 絵文字もアクセス解析も表示させるにはなにが必要でしょうか?

    • 締切済み
    • PHP
  • htaccess ssi basic認証

    ssiでヘッダー・フッターを読み込んでいるサイトがあります。 そこでまずhtaccessでssi、shtml→htmlへの設定をしています。 そのサイトの中でディレクトリを切ってbasic認証が必要なページを作成しました。 そのディレクトリの中ではヘッダー・フッターが読み込むことができず、エラーが表示されます。 an error occurred while processing this directive そこでbasic認証に使ったhtaccessにもssiの設定を追記しましたがうまく行きません。 ssiとbasic認証を同時に設定することはできるのでしょうか。

  • SSI の.shtml 以外の設定について

    SSIで拡張子が、通常、.shtml として活用すると思いますが、 仮に、.shtmlファイル以外の.html.php.cgiにも使用 できるように .htaccess の設定をしたいのですがどうすればいいのでしょうか?

    • ベストアンサー
    • HTML
  • htmlページでSSIを利用する方法を教えてください

    htmlページでSSIを利用する方法を教えてください。 ちなみに、さくらインターネットのスタンダードプランを利用しています。 また、なぜか http://www.tagindex.com/other/htaccess.html に載っている様に Options +Includes AddType text/x-server-parsed-html .shtml .html .htm と.htaccessに入力したのですが、 エラーがでてダメでした。 (.htaccessに入力したのは Options +Includes AddType text/x-server-parsed-html .shtml .html .htm だけです。) よろしくお願いします。

    • ベストアンサー
    • CGI