.htaccessの記述について



拡張子htmlのファイルをphpとして扱いたい場合、.htaccessで制御していますが、
サーバによって記述内容が違っています。

どんな内容にすれば良いかは、どこを見て判断すれば良いでしょうか?




例えば、共有のレンタルサーバだと下記で動いたりしますが、
何の差なのか教えてください。
--------------------
Action myphp-script /myphp/php.cgi
AddHandler myphp-script .php .html
--------------------
AddType text/x-server-parsed-html .html
AddType application/x-httpd-php .html
--------------------

回答の条件
  • URL必須
  • 1人3回まで
  • 登録:2007/06/30 02:14:38
  • 終了:2007/07/07 02:15:03

回答(3件)

id:hblm No.1

hblm回答回数243ベストアンサー獲得回数232007/06/30 02:56:44

ポイント27pt

ApacheやPHPの設定ファイルでそれを許可しているか否かではないでしょうか。ローカル環境でしたらhttpd.confを確認してみてください。レンタルサーバの場合はマスターに確認をとってください。

この件にかかわらず、環境によって書き方が変わるのは、むしろ当たり前のことだと思います。

しかし、もしあなたがPHPを静的ファイルとして表示させるためにそのような記法をとっているのでしたら、やめた方が無難だと思います。mod_rewriteが一般的です。なぜなら第一に危険であり、そしてすべてのhtmlファイルがスクリプトとして扱われるため、サーバに対する負荷が高いからです。

たとえば、ファイルアップローダなどが設置されている場合、悪意のあるPHPコードを含んだ.htmlファイルがアップロードされたら、サーバが直接攻撃されてしまうでしょう(もちろん、あなたがそれらのすべての攻撃手法を熟知していて、それに対応したPHPコードを書かれているのでしたらまったくの蛇足ですが)。

http://httpd.apache.org/docs/2.0/ja/

id:smart007

.htaccessが使えるか否かではなく、使える場合の記述に関しての質問です。

hblmさんが「むしろ当たり前」と考えている箇所を突き詰めてみてください。


Apacheのconf設定によって変わるのか、

インスコしたモジュールによって変わるのか、

バージョンによるのか、

カーネルによるのか、

そういう質問です。

2007/06/30 04:24:31
id:unsteady No.2

unsteady回答回数10ベストアンサー獲得回数12007/06/30 08:38:37

ポイント27pt

.htaccessのActionという表記は指定したタイプのファイルがリクエストされたときにCGIスクリプトを実行させます。

AddTypeは拡張子に対してMIMEタイプ(どういうファイルなのかの定義)を追加します。

 

質問の例ですと

Action myphp-script /myphp/php.cgi

AddHandler myphp-script .php .html

という記述をした場合、.phpと.htmlで終わるファイルをmyphp-scriptという種類とします。

myphp-scriptという種類のファイルにアクセスがあったら /myphp/php.cgiで処理しなさい。

という感じの流れになります。つまり、.phpと.htmlは /myphp/php.cgiで処理されます。

 

AddType text/x-server-parsed-html .html

AddType application/x-httpd-php .html

という記述の場合、.htmlで終わるファイルをx-server-parsed-html(SSIファイル)と

x-httpd-php(PHPファイル)というMIMEタイプにしなさいという意味になります。

 

x-httpd-phpで定義した場合、PHPはPHPモジュール(mod_php)として動作します。

 

http://mikeneko.creator.club.ne.jp/~lab/web/htaccess/mime.html

 

具体的な違いという点ですと、PHPファイルがどこで処理されるのか(Apacheが処理、php.cgiが処理)の違いだと思います。

id:smart007

回答ありがとうございます、とても勉強になります。


もう1点知りたいのは、

既に構築済みのサーバやレンタルサーバで.htaccessを利用する場合、

みなさんがどこを見て.htaccessの記述内容を決めているか。という点です


当てずっぽうで書いている人が多いように思うのですが、

このファイルを解析して決める。といった確定した情報があるのでしょうか?

曖昧な情報でも全然構いませんので、回答いただけると大変助かります。

2007/07/01 08:45:39
id:unsteady No.3

unsteady回答回数10ベストアンサー獲得回数12007/07/03 07:59:58

ポイント26pt

smart007さんが2007-07-01 08:45:39に返答いただいたもう1点についての内容です。

  

専用サーバーやVPS(仮想専用サーバー)ですと、root(管理者)権限がもらえる場合もありますので、

httpd.conf(またはaccess.conf)のAllowOverride設定を書き換えることで

.htaccessで設定できる機能を選ぶことができるようです。

 

root権限のもらえないレンタルサーバーについては、

BASIC認証・オリジナルのエラーページ表示・リダイレクト程度は.htaccessが許可されていれば使えるだろうと判断して設定しています。

<Files>ディレクティブ等は使えない場所もありますので、使う必要のある場合はFAQで確認や、サポートにメールで問い合わせを行っています。

あくまで、私個人でのやり方ですが・・・

 

結論としましては、httpd.confというファイルにアクセスする権限がなければ実際の設定は見ることが出来ませんので、

サポートに問い合わせるしかサーバーの仕様は確かめられないと思われます。

 

httpd.confによる.htaccessの制限について見やすい解説ページを見つけましたのでよろしければどうぞ。

http://document.othersight.jp/notes/website/htaccess.html

ページ真ん中くらいの[より詳しく - 上級ユーザ向けの解説]という項目に載っています。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません