ページ 11

htaccessを設定したディレクトリにCMSページを設置したいのですが、可能でしょうか?

Posted: 2005年11月17日(木) 13:24
by momora
web master様へ
何時もおせわになっております。

有料のコンテンツを作成することになり、htaccessを設定した、ディレクトリにCMSページを設置したいのですが、可能でしょうか?

基本的にCMSdesigner用のPHPのページは、cmsdesignerが置かれている、同一階層に設置するように書いてあったと思うのですが、もし可能なら、設置の方法などのヒントをお教え頂ければ幸です。

お忙しいとは思いますが、何卒宜しくお願い申し上げます。

Re: htaccessを設定したディレクトリにCMSページを設置したいのですが、可能でしょうか?

Posted: 2005年11月17日(木) 13:48
by webmaster
 webmasterです。momoraさん、ご質問ありがとうございます。

 同一階層以外に設置する方法につきましては、こちらの投稿が参考になるかと
思います。
 http://cms.al-design.jp/phpbb/viewtopic.php?t=55

 但し、CMSDの仕様上、コンテンツの「一部」に基本認証機能をつけるのが難しく
なっております。
 http://cms.al-design.jp/phpbb/viewtopic.php?t=264

 CMSDそのものには「アクセス制限」という概念が無い為、制限をかけるなら
コンテンツ全てにまとめてかけるしか方法がありません。

 「コンテンツを埋め込むページ」に個別にアクセス制限をかけることはできますが、
画像やファイルについてはCMSD本体が表示している為、直接URLを叩けば
表示することができてしまいます。

 また、上記の投稿にも書かせて頂いてますが、CMSDの利用規約上、上記の
ような使い方をする場合には基本的に商用ライセンスが必須となります。
 既にご購入されている、又はご購入予定がある場合には問題ありません。

 上記のような理由の為、現在の所申し訳ありませんが、「一部ユーザー認証が
必要なサイト」は作りづらくなっております。

 弊社にて同様のサイトを作る場合には、閲覧制限がかかっている部分には
独立して別のCMSDを設置し、その部分全体に.htaccessでユーザー認証を
つけるようにしています。
 (大変申し訳ありませんが、この場合、2ライセンスが必要となってしまいます)

 momoraさんのようなご要望が多く、弊社にて請け負うサイトでも同様の
案件も多い為、CMSDそのものに閲覧制限機能をつけることを検討中です。
 コンテンツ単位で「誰でも見れる」「パスワードが必要」「公開停止」を設定
できるようなものを考えております。

 以上、お役に立てそうになく、申し訳ありません。
 ご質問、ご要望などありましたらまたご連絡頂ければ幸いです。

Posted: 2005年11月18日(金) 12:38
by momora
webmaster様
わかりやすく、丁寧に回答して頂き、ありがとうございます。

会員専用ページ用と、一般用の2ライセンスあれば良いことがよく解りました。

また何か質問することがあると思いますが、宜しくお願いいたします。

何時も迅速に回答していただき、ありがとうございました。

Posted: 2006年3月15日(水) 20:27
by bcacsato
momoraさんのようなご要望が多く、弊社にて請け負うサイトでも同様の
案件も多い為、CMSDそのものに閲覧制限機能をつけることを検討中です。
こちらの機能、ぜひ付けていただきたいです。期待しております。

実は私も、CMSDで一部ページのみアクセス制限することが難しいとは知らず、
お客様よりそのような依頼を受けてしまいました。

ところが、
・htaccessではディレクトリ全体での制限になってしまう。
・kentのcgiではphpページにはアクセス制限できない。
・JavaScript等を利用した方法では、直接URLを指定すればページが見られてしまう。
といった状況のため、困ってました…。

厳密なアクセス制限でなくてもけっこうですので、ライセンスを追加せずに
特定ページへのアクセスを制限する方法がもしありましたら、ご紹介していただけますでしょうか?

お忙しいところ恐れ入りますが、よろしくお願いいたします。

Posted: 2006年3月16日(木) 01:35
by webmaster
 webmasterです。
 ご指摘の通り、CMSDで「一部の」コンテンツに対してアクセス制限をかけるのは
困難になっております。m(_ _;)m

 htaccessでは、ファイル個別にも制限をかけることができますので、その機能を
使って制限をかけたいページにのみアクセス制限をかけるという手段があるかと
思います。

 通常、htacces でアクセス制限をかけるとき、

コード: 全て選択

require valid-user
 という行が存在するかと思いますが、これをFilesディレクティブで囲ってやります。
 Filesディレクティブには、直接ファイル指定の他、正規表現を指定することもできます。

 例えば、

コード: 全て選択

<Files ~ "_sec\.php$">
require valid-user
</Files>
 と書くと、"_sec.php" で終わる全てのページにのみ、アクセス制限をかける
事ができます。(例: index_sec.php、memberlist_sec.php、など)

 この対策を行う歳には、dataフォルダ以下に対して htaccess を使って
deny from all でアクセス制限をかける対策も同時に併用して下さい。
 (deny from all とだけ書いた .htaccess を置くだけでOKです)

 但し、上記対策を行ったとしても、アップロードした画像およびファイルについては
dlfile.php、viewimg.php を通してアクセス可能な為、完全な対策にはなりません。
(エントリフォルダ名+エントリID、ファイルIDを直接指定されると見れてしまいます。
これを回避するにはdlfile.phpとviewimg.phpにもアクセス制限をかける必要が
ありますが、そうすると全ての人に対してアクセス制限がかかってしまいます)

 とはいえ、エントリフォルダ名を推測不可能な名前にしておけば、部外者に見つかる
可能性は非常に低いと思われますので、通常の用途であれば充分かと思います。

 また、通常問題はないと思いますが、現在配布されている podcasting サンプル
スキーマとデザイン定義は、dataフォルダ以下に対して deny from all が
かけられていない事を前提に作られている為、上記対策を行うと動作しなくなります。
(dlfile.php を通さず直接dataフォルダ以下のファイルを取得している為です)
 ご了承下さい。m(__)m

 以上、ご質問がありましたら再度ご連絡頂ければ幸いです。

Posted: 2006年3月16日(木) 11:33
by bcacsato
webmasterさま

さっそくのご回答ありがとうございます。
ご説明の通りにやってみたところ、個別ページにアクセス制限をかけることができました!
ページさえ表示されなければ問題ないので、この方法でOKです!
大変ありがとうございましたm(_ _)m

htacessで個別ページにアクセス制限をすることができるんですね。
ロリポップのオンラインページを見たところ、ディレクトリ単位で制限する方法しか書いてなかったため、
個別ページにはできないものと思いこんでました。勉強不足ですいません…。


momora様
スペースをお借りしまして、大変ありがとうございました。