はじめ
たまにいくつかのサイトやページにアクセスすると、ユーザー名とパスワードを要求する場合があります。 WordPressの場合 WordPress 内の機能を使用してサイトまたは特定のコンテンツにアクセスできないようにパスワードで保護することができます(この記事の下部を参照)。 ここで、特定のサブフォルダにアクセスできないようにパスワードで保護する方法を説明します。
たとえば、私は特定のフォルダに重要なバックアップデータを保管しています。 ユーザーがむやみに接続すると、重要な資料をダウンロードしていくことができます。 これは私が欲しいところはないよ。 まずは全面的にアクセスをブロックする方法があるでしょう。 この場合、 .htaccess ファイルをそのサブディレクトリに作成し、次のコードを追加します。
Deny from all
別の方法として、特定のフォルダ内のフォルダを閲覧することはできますが、ファイルのダウンロードがされないようにすることができます。 この場合、 .htaccess ファイルを作成し、次のコードを追加するようにします。
<FilesMatch ".*"> Order Allow,Deny Deny from All </FilesMatch> // Source: stackoverflow
nginxサーバーの場合 この記事を参考にしてみてください。
ウェブサイトまたはサブディレクトリをパスワードでアクセス制限する
今のIDとパスワードで保護する方法について見てみましょう。 そのサブフォルダに次のように .htaccess ファイルと 。htpasswdの XNUMXつのファイルを作成するようにします。
.htaccessファイル
.htaccess ファイルには、次のようなコードを追加するようにします。
AuthType Basic AuthName "restricted area" AuthUserFile /absolute_full_path/.htpasswd require valid-user
/ absolute_full_path /は、絶対パスする必要があります。 絶対パスをよく知らない場合は、次のようなPHPスクリプトを使用して、絶対パスを確認することができます。
<?php $path = getcwd(); echo "This Is Your Absolute Path: "; echo $path; ?>
.htpasswdファイル
。htpasswdの ファイルには、次のように、各ラインにID:パスワードの形式で追加します。
username:password
ユーザー名とパスワード(パスワード)は、コロン(:)で区切ります。 ここでは、パスワードは暗号化されます。 SSHセルでは、ユーザー名とパスワードを作成してくれることができます(参照)。 しかし、面倒な作業になることがあります。 このサイトのツールを使用して暗号化されたパスワードを生成することができます。
UsernameとPasswordを入力した後、「Generate User / Pass」をクリックすると、Resultで暗号化されたパスワードが「Username:Password」の形式で表示されます。 そのままコピーして 。htpasswdの ファイルに追加します。
これで、サブディレクトリのアドレスをブラウザに入力して 入力しますをクリックすると、次のようにユーザー名とパスワードを要求するウィンドウが表示されます。
以上でSSHセルに接続せずに簡単に.htaccessのユーザー名とパスワードを作成する方法を説明しました。
注 - WordPress サイトで会員がアクセスすると、ログインページに移動させる
WordPressで非会員がアクセスすると、ログインページに移動するようにする方法についてのお問い合わせを時々します。 いくつかの方法があります。 UserProのようなプラグインを使用すると、サイト全体をロックする機能があります。 このプラグインは、強力なユーザー管理機能を提供するため、このような単純な機能のためにインストールすることは無駄(?)になると思われる。
このような機能だけの簡単なプラグイン Redirect to login if not logged in プラグインがあります。 しかし、このプラグインは、更新されたか古くなって、最新の WordPress バージョンで正常に動作しない可能性もあります。
最も簡単な方法は、フック(フィルタ/アクション)を使用してゲストをログインページに移動させることです。 これについての詳細は、 この記事を参考にしてみてください。 リンクされた記事に出てくるコードを応用して、適切に修正してくれればされます。 例えば、非ログインユーザをチェックする場合 if(!is_user_logged_in()) コードを使用します。
私は長い間、ウェブハードを利用してきたが、最近にウェブハードを更新せずに、この方法を使用して、Webホスティングサーバーのスペースをウェブハード代わりに使用しています。 大きなファイルを送信する場合は、Gmailを使用して、重要なファイルバックアップ道路は、この方法を使用します。