こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

お願いします

投稿日時 - 2011-05-31 12:02:24

QNo.6776462

すぐに回答ほしいです

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

同じディレクティブだと、下の階層が上の階層を置き換えますが、違うディレクティブだと自動的には無効にならないと思いますよ。つまり、

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

投稿日時 - 2011-05-31 22:46:39

お礼

ありがとうございます!!

AddType application/x-httpd-php .php .html .xhtml .shtml
RemoveHandler .html

このように表記したところ
旧サイトも新サイトもhtmlの拡張子で
今の所問題なく表示されました!!

投稿日時 - 2011-06-01 17:07:09

ANo.1

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問