راهنمای تنظیم پسورد روی دایرکتوری به وسیله‌ی htaccess

قبل از هر کاری باید به apache بگویید که htaccess را در دایرکتوری مورد نظر بخواند. کدی که باید به تنظیمات apache اضافه شود این است:

      <Directory /var/www/>
              Options Indexes FollowSymLinks MultiViews
              AllowOverride All
              Order allow,deny
              allow from all
      </Directory>
      <Directory /usr/share/phpmyadmin>
              Options Indexes FollowSymLinks MultiViews
              AllowOverride All
              Order allow,deny
              allow from all
      </Directory>

در توزیع‌های ردهت بیس مثل centOS آدرس فایل تنظیمات این است:

/etc/httpd/conf/httpd.conf

در توزیع‌های دبیان بیس مثل Ubuntu آدرس فایل تنظیمات این است:

/etc/apache2/sites-enabled/000-default

در این راهنمای میخواهیم روش محدود کردن دسترسی به یک دایرکتوری را توضیح دهیم.

برای password protected directory راهکارهای مختلفی از جمله استفاده از PHP وجود دارد اما اگر بخواهید به عنوان مثال از تمام تصاویر و محتویات یک شاخه محافظت کنید این روش مناسب نیست. apache یک روش built-in به وسیله‌ی فایل .htaccess برای اینکار دارد که در این مقاله آموزش خواهیم داد.

ابتدا یک فایل .htaccess را در هر دایرکتوری که میخواهید آن را password protect کنید ایجاد کنید. حالا باید تعدادی از پارامترهای مربوط به htaccess را درست کنیم.

برای تولید محتویات مناسب برای فایل .htaccess سایت‌های مختلفی وجود دارند که از بین آنها این سایت را معرفی میکنم:

http://www.htaccesseditor.com/en.shtml

خلاصه‌ی محتویات فایل .htaccess مرتبط با این بحث ۳ خط زیر است:

AuthUserFile /full/path/to/.htpasswd
AuthName "Please Log In"
AuthType Basic
Require valid-username

خط اول آن محل فایل .htpasswd است که یوزرنیم و پسورد‌ها در آن ریخته شده برای همین این فایل را در محلی قرار دهید که قابل دسترسی توسط کاربران اینترنت نباشد. خط دوم پیغامیست که مرورگر هنگام بازکردن آن دایرکتوری به کاربر می‌دهد که عبارت Please Log In با هر عبارت دلخواه دیگری قابل جایگزینیست.

برای تولید محتویات فایل .htpasswd از سایت زیر کمک بگیرید:

http://www.htaccesstools.com/htpasswd-generator/