راهنمای تنظیم پسورد روی دایرکتوری به وسیلهی 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/