htaccessを使用してユーザ毎にページを振り分けたい方法

このQ&Aのポイント
  • Basic認証でユーザ認証を行った後、ユーザ毎に異なるページを表示する方法について教えてください。
  • ウェブサイトに.htpasswdと.htaccessを使用してユーザ毎にページを振り分ける方法について詳しく知りたいです。
  • さくらVPSとUbuntuを使用して.htaccessを設定し、ユーザAとユーザBで異なるディレクトリを表示する方法を教えてください。
回答を見る
  • ベストアンサー

htaccessでユーザ毎にページを振り分けたい

お世話になります。 Basic認証でユーザ認証を行った後、ユーザ毎に違うページを表示したいと考えています。 (さくらVPS、Ubuntu12.04を利用) <例>  ドキュメントルート → /var/www/hoge  UserA → /var/www/hoge/userA/index.html  UserB → /var/www/hoge/userB/index.html この時、  ・.htpasswdにユーザIDとパスワードを記載  ・.htaccessにRewriteRuleとRewriteCondを記載し転送設定をする  ・ユーザAはユーザB用のページを見れないようにする  ・ユーザAはuserA以下のディレクトリは全て見られるようにする という条件の下設定を行いたいのですが、htaccessの記述ルールがよくわからず、 どうにもうまくいきません。 レベルの低い質問でもうしわけありませんが、ご回答いただけたら幸いです。 よろしくお願いします。

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

  • ベストアンサー
回答No.1

CMS使った方がいい。 http://webings.net/htaccess/authuser/ とりあえずユーザでの振り分けはできるがディレクトリ制限はできない。 ディレクトリ毎にベーシック認証のファイルを用意した方がいいだろうね。

amnet2012
質問者

お礼

ご回答ありがとうございます! サブディレクトリ毎にBasic認証を設定することにします。

関連するQ&A

  • htaccess ユーザーエージェント 振り分け 

    htaccess でユーザーエージェント 振り分けを行いました。http://www.example.com/ 以下に htaccessを入れましたが、PCのSEO対策上問題があるでしょうか? RewriteEngine On RewriteCond %{HTTP_USER_AGENT} DoCoMo RewriteRule ^$ http://www.example.com/i/index.html [R] RewriteCond %{HTTP_USER_AGENT} J-PHONE RewriteRule ^$ http://www.example.com/s/index.html [R] RewriteCond %{HTTP_USER_AGENT} Vodafone RewriteRule ^$ http://www.example.com/s/index.html [R] RewriteCond %{HTTP_USER_AGENT} SoftBank RewriteRule ^$ http://www.example.com/s/index.html [R] RewriteCond %{HTTP_USER_AGENT} UP.Browser RewriteRule ^$ http://www.example.com/e/index.html [R]

    • ベストアンサー
    • HTML
  • htaccessについて

    HPサイトを携帯・スマートフォンとPCで振り分けたいのですが、 htaccessがうまく機能してくれません。。 携帯でページを開いてもPC用のページが開きます。 RewriteEngine On
 RewriteCond %{HTTP_USER_AGENT} UP.Browser [NC]
RewriteRule ^$ http:// http://あどれす /mobil/index.html [R] #au 

RewriteCond %{HTTP_USER_AGENT} DoCoMo [NC]
RewriteRule ^$ http:// http://あどれす /mobil/index.html [R] #DoCoMo 

RewriteCond %{HTTP_USER_AGENT} SoftBank [NC]
RewriteRule ^$ http://あどれす /mobil/index.html[R] #SoftBank RewriteCond %{HTTP_USER_AGENT} iPhone [NC]
RewriteRule ^$ http:// http://あどれす /mobil/index.html[R] #iPhone RewriteCond %{HTTP_USER_AGENT} iPod [NC]
RewriteRule ^$ http:// http://あどれす /mobil/index.html[R] #iPod RewriteCond %{HTTP_USER_AGENT} Android [NC]
RewriteRule ^$ http:// http://あどれす /mobil/index.html[R] #Android 以上を記入したのですが、どうして出来ないのかわかりますでしょうか。 .htaccessはPCのindexと同じ階層です。 PCの階層にmobilのファイルがおいてあります。 よろしくお願いします

  • .htaccessが機能していない?

    .htaccessを初めて使用します。 利用法はサイトにきた人を携帯用とPC用に振り分けるためです。 ファイル構成は以下のようにしました。 www ├.htaccess ├index.html(PC用) └mobile─index.php(携帯用) 環境 さくらインターネット/スタンダードプラン 記述 RewriteEngine On RewriteCond %{HTTP_USER_AGENT} DoCoMo RewriteRule ^$ /mobile/ [R] RewriteCond %{HTTP_USER_AGENT} KDDI [OR] RewriteCond %{HTTP_USER_AGENT} UP.Browser RewriteRule ^$ /mobile/ [R] RewriteCond %{HTTP_USER_AGENT} J-PHONE [OR] RewriteCond %{HTTP_USER_AGENT} Vodafone [OR] RewriteCond %{HTTP_USER_AGENT} SoftBank [OR] RewriteCond %{HTTP_USER_AGENT} MOT- RewriteRule ^$ /mobile/ [R] しかし全く機能せず、全てPC用のトップにとんでしまいます。 .htaccessが機能しているかも怪しく、.htaccessに日本語を入力してもエラーすら出ません。 エラーも出ないので何が起きているかもわかりません。 .htaccessが機能しているかどうかの確認の方法と、何か考えられることがあれば教えてください。

  • .htaccessについて

    「ロリポップレンタルサーバー」で.htaccessファイルを設置したのですが、 なぜか「500エラー」が出てしまいます。 何が原因なのか分からないでしょうか? 【問題の.htaccessファイル】 <Files ~ "^\.(htaccess|htpasswd)$"> deny from all </Files> Options +MultiViews Options -Indexes ErrorDocument 401 http://hoge.com/error/401.htm ErrorDocument 403 http://hoge.com/error/403.htm ErrorDocument 404 http://hoge.com/error/404.htm ErrorDocument 500 http://hoge.com/error/500.htm RewriteEngine on RewriteCond %{HTTP_HOST} ^(www\.hoge\.com)(:80)? [NC] RewriteRule ^(.*) http://hoge.com/$1 [R=301,L] DirectoryIndex index.htm Redirect permanent http://hoge.com/sub http://sub.hoge.com/ order deny,allow [EOF] ちなみに「.htaccess Editor」というサイトで作ったものを少しいじりました。

  • htaccessの書き方について お教えくださいませんか?

    新たにwordpress にてホームページを作成しようと思うのですが、そこでお教えいただきたいのが、 htaccessの書き方 をどうすればいいかお教えくださいませんか? 今まで、レンタルサーバーを借りて ホームページ運用をしていました。 その際、仮に http://www.aaaa.com/ がメインのページとして、 携帯用のサイトを http://www.aaaa.com/i/としていました。 そして、 htaccess を設置して、携帯から http://www.aaaa.com/ にアクセスがあった場合 http://www.aaaa.com/i/ に誘導するようにしておりました。 (今回携帯サイトは、ワードプレスで運用はしません。サーバーにiフォルダーを作成しhtmlを保存するだけです) (1)そのhtaccessの記述が 以下です。 RewriteEngine On # DoCoMo RewriteCond %{HTTP_USER_AGENT} DoCoMo [NC] RewriteRule ^$ http://aaaa.com/i/index.html [R] # SoftBank RewriteCond %{HTTP_USER_AGENT} J-PHONE [NC,OR] RewriteCond %{HTTP_USER_AGENT} Vodafone [NC,OR] RewriteCond %{HTTP_USER_AGENT} SoftBank [NC] RewriteRule ^$ http://aaaa.com/i/index.html [R] # au RewriteCond %{HTTP_USER_AGENT} UP.Browser [NC] RewriteRule ^$ http://aaaa.com/i/index.html [R] (2)また、ワードプレスにも最初から以下のhtaccessの記述があります。 # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress ★この (1)と(2)を同じ場所に設置する場合、htaccessの記述を 足して書く必要が、あると思いますが、初心者でもあり どう書いていいのか わかりません。 どのように、記述すればよいのでしょうか? お知恵を拝借いただけたら 光栄です。

    • ベストアンサー
    • CGI
  • .htaccessを使用した携帯端末の振り分けについて

    各キャリア毎に振り分けたいのですが、.htaccessを設置したところでサーバーエラーが起きて行き詰まってしまいました。 現状は下記の記述です。 サイトから見つけて、転送先URLを書き換えただけです。 ------------------------ RewriteEngine On RewriteCond %{HTTP_USER_AGENT} DoCoMo RewriteRule ^$ /i/index.xhtml [R] RewriteCond %{HTTP_USER_AGENT} J-PHONE RewriteRule ^$ /s/index.html [R] RewriteCond %{HTTP_USER_AGENT} Vodafone RewriteRule ^$ /s/index.html [R] RewriteCond %{HTTP_USER_AGENT} UP.Browser RewriteRule ^$ /a/index.html [R] ------------------------------------ 意味を把握して使用していないので、問題点が分からない状態です。 サーバは.htaccess使用可能です。 改善策をお教えいただければ幸いです。

  • .htaccessで携帯サイトとPCサイトの振り分けについて

    .htaccessで携帯サイトとPCサイトの振り分けについて お世話になります。 .htaccessで携帯サイトとPCサイトの振り分けで困っています。 現在、index.phpで携帯サイトとPCサイトの振り分けしています。この場合、PCサイトのトップページがindex.htmlではなく他の名前にしなくてはならないようで、現在はpc.htmlにしています。 どうにかpc.htmlではなく、index.htmlのまま携帯サイトとPCサイトの振り分けをしたいのです。 .htaccessであればできそうなので、いろいろと調べながら試したのですがうまくいきませんでした。 使用しているサーバーはさくらのレンタルサーバーで、ライトプランです。 mod_rewriteは入ってると記載してありました。.htaccessもOKなようです。 以下のように.htaccessファイルに記述して試しました。 例1) RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^DoCoMo [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^vodafone [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^SoftBank [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^KDDI [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^J-PHONE [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^Up.Browser [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^ASTEL [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^DDIPOCKET [NC] RewriteRule ^$ abc.com/m/ [R] 例2) Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_USER_AGENT} DoCoMo RewriteRule ^$ http://www.abc.com/m/index.html [R] RewriteCond %{HTTP_USER_AGENT} J-PHONE RewriteRule ^$ http://www.abc.com/m/index.html [R] RewriteCond %{HTTP_USER_AGENT} UP.Browser RewriteRule ^$ http://www.abc.com/m/index.html [R] 素人ですので、できましたら記述全文教えていただけるとありがたいです。 宜しくお願い致します。

    • ベストアンサー
    • HTML
  • mod_rewrite 動的ページを静的ページへ

    SEO対策として、動的ページを静的ページへリダイレクトさせたいと考えています。 レンタルサーバーのため、.htaccessへ記入するしか方法はないと思っているのですが、 そもそも「静的化するってこと自体」がよく分かってないので、教えてください。 <現状> ▼URL /hoge/index.php?id=1 ▼.htaccess RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([0-9A-Za-z]+)\.html$ details.php?id=$1 [L] <結果> 実行すると、/hoge/1.htmlとなり、望む結果を得られるのですが、 念のためディレクトリを指定しておきたいと思い、 RewriteRule ^/hoge/([0-9A-Za-z]+)\.html$ /hoge/details.php?id=$1 [L] としたところ、全く静的表示されなくなりました。 ■質問1 なぜ、ディレクトリを指定すると静的化できないのでしょうか? ■質問2 ネットでmod_rewriteの解説ページを検索してみると、静的化の例として、 「hoge/1.html へアクセスがあった際に、index.php?id=1の結果を返す」、 と記載されてます。 「index.php?id=1へアクセスした際に、hoge/1.html の結果を返す」 ようにした方がいいと思うのですが、 これって結果的には同じことをしている、と考えてよいのでしょうか? ■質問3 例えば、「/hoge/index.php?id=1」に対して、 「index.php?id=1へアクセスした際に、hoge/1.html の結果を返す」 ようにするには、どう書けばよいのでしょうか?

    • ベストアンサー
    • PHP
  • .htaccessの記述間違いを教えてください

    .htaccessを使用して、アクセス制御を行おうとしたのですが、アップロードしてアクセスしてみるとすべてのアクセスがブロックされてしまいました。 制御したい事柄は以下の通りです。 ファイルの「.htaccessと.htpasswdと.class.php」にはアクセスできないようにすること。 IPアドレス88.80.10.1は、アクセス拒否 ユーザーエージェントの「MorfeusとZmEu」の名前がつくものは、FORBIDDEN を返すというものです。 以下 .htaccess の記述内容 ----------------------------------- <Files ~ "^\.(htaccess|htpasswd)$"> deny from all </Files> <Files ~ "\.class\.php$"> deny from all </Files> Order allow,deny Deny from 88.80.10.1 RewriteEngine On RewriteOptions inherit RewriteCond %{HTTP_USER_AGENT} ^Morfeus RewriteRule ^.*$ - [F] RewriteCond %{HTTP_USER_AGENT} ^ZmEu RewriteRule ^.*$ - [F] ----------------------------------- 何卒よろしくお願いいたします。

  • .htaccessで携帯とPCの振り分け

     .htaccessで携帯サイトとPCサイトの振り分けで困っています。 .htaccessは以下の通りです。 <IfModule mod_rewrite.c> RewriteEngine On # SoftBank RewriteCond %{HTTP_USER_AGENT} ^J-PHONE [OR] RewriteCond %{HTTP_USER_AGENT} ^Vodafone [OR] RewriteCond %{HTTP_USER_AGENT} ^MOT- [OR] RewriteCond %{HTTP_USER_AGENT} ^SoftBank RewriteRule ^$ /mobile/[R=302,L] # DoCoMo RewriteCond %{HTTP_USER_AGENT} ^DoCoMo RewriteRule ^$ /mobile/[R=302,L] # au(HDML-Only) RewriteCond %{HTTP_USER_AGENT} ^UP.Browser RewriteRule ^$ /mobile/[R=302,L] # au(HTML-OK) RewriteCond %{HTTP_USER_AGENT} ^KDDI RewriteRule ^$ /mobile/[R=302,L] </IfModule>  これで、PCからのアクセスはどのページへも正常なのですが、携帯からのアクセスはhttp://example.comですとちゃんと携帯サイトのindex.htmlへいくのですが、http://example.com/***.htmlで携帯からアクセスするとPCサイトのhttp://example.com/***.htmlへつながってしまいます。この場合、携帯サイトのindex.htmlへ導くためにはどのようにすればよいのでしょうか。  また、欲を言えば、PCサイトのそれぞれのページにアクセスしてきた携帯をindex.htmlではなく、携帯サイトのそれぞれの該当するページへと導くためにはどのようにしたらよいのでしょうか。  まったくの初心者ですが、よろしくお願いいたします。