ユーザ毎に表示する内容を変更したい!
Webページへアクセスするユーザ毎に表示する内容を変更したい場合、以下の条件が必要となる。
①ユーザを識別させるために「Basic認証」の設置
②リダイレクトさせるために「mod_rewrite」の利用
まずは上記①「Basic認証」の設置から行ないます。
設置には
「.htpasswd」というパスワードファイルと
「.htaccess」という設定ファイル を利用します。
まずは以下のコマンドを実行しパスワードファイルを作成しましょう。
以下の例では「/var/www/html/.htpasswd」というファイルを作成し、ユーザ「user1」を追加しています。
既に作成済みのパスワードファイルにユーザを追加したい場合には、「-c」のオプションは必要ありません。
ここまででパスワードファイルの作成が完了しました。
次に、設定ファイルになる「.htaccess」というファイルをWeb公開しているディレクトリ(DocumentRoot)に設置します。公開しているディレクトリが「/var/www/html/」の場合には、「/var/www/html/.htaccess」として以下の記述を設定してください。
「AuthUserFile」の場所は、適時作成されたパスワードファイルのパスを設定してください。
ここまでで、登録したユーザでの認証が行われるようになっています。一度公開されているWebページへアクセスを試してみてください。以下のような画面で認証が求められると思います。
次に上記②「mod_rewrite」の設定を行ないます。
はじめに、「mod_rewrite」モジュールがロードされていることを確認しておきましょう。「LoadModule~」の行がコメントアウトされている場合には、コメントアウトを解除しApacheを再起動してください。
さて、上記確認が完了したら先ほど設定した「.htaccess」ファイルにリダイレクトを行なう設定を追加します。
上記「RewriteCond %{REQUEST_URI} !^/user1/」の記述が無いと、転送がループしてしまいますので注意してください。
以上で設定が完了となりましたので、インターネットブラウザのクッキーと一次ファイルを削除し、インターネットブラウザを再起動しアクセスしなおしてください。もちろん、上記設定の場合だと「/user1」というディレクトリがある必要がありますので、お忘れなく。
コメント