※ ChatGPTを利用し、要約された質問です(原文:.htaccessによる制御 phpとssi)
.htaccessによる制御 phpとssi
このQ&Aのポイント
ウェブサイトの制御には.htaccessファイルを使用しています。新しいPHPページと古いSSIページを両方有効にするには、設定の順序に注意する必要があります。
新しいPHPページを有効にするためには、下の階層に.htaccessファイルを配置する必要があります。しかし、上の階層にあるSSIページの設定は引き継がれてしまいます。
両方のページを有効にするためには、下の階層の.htaccessファイルで上の階層のSSI設定を無効化する必要があります。これにより、PHPページが正常に表示されます。
某ポータルサイトを運営しておりまして
サイトは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を置いてもダメでした。
お願いします
お礼
ありがとうございます!! AddType application/x-httpd-php .php .html .xhtml .shtml RemoveHandler .html このように表記したところ 旧サイトも新サイトもhtmlの拡張子で 今の所問題なく表示されました!!