فایل .htaccess یکی از فایلهای اصلی در سرورهای آپاچی است که مسائل مرتبط با دسترسی به وبسایت (مانند رمزگذاری، ریداریکت و…) را مدیریت میکند. ممکن است در بسیاری از مقالات آموزشی وردپرس به این فایل برخورد کرده باشید.
در ادامه دربارهی فایل .htaccess و کاربردهای آن بیشتر صحبت میکنیم.
فایل .htaccess چیست؟
کلمهی .htaccess مخفف Hypertext Access است.با نصب سیستمهای مدیریت محتوا (از جمله وردپرس)، این فایل به وبسرور شما اضافه میشود. این فایل مخفی، واکنش سرور به درخواستهای مختلف را تعیین و هدایت میکند. آپاچی معروفترین سروری است که از .htaccess استفاده میکند.
این فایل مدیریت لینکهای ثابت سایت شما را بر عهده دارد. با تغییر در ساختار یک لینک، .htaccess لینک را ریدایرکت میکند.
برای ایجاد یک فایل .htaccess میتوانید از ویرایشگرهایی مانند Microsoft WordPad و TextPad استفاده کنید.
تنظیمات اشتباه ممکن است مشکلاتی را برای فایل .htaccess و در نتیجه کل سایت به وجود بیاورد. برای رفع این مشکل لازم است با شرکتی ارائه دهندهی هاست صحبت کنید.
فایل .htaccess چه کاربردهایی دارد؟
علاوه بر موارد کلی که گفته شد، فایل .htaccess کاربردهای مختلفی دارد که در ادامه آنها را توضیح میدهیم.
ساخت صفحات ارور
یکی از کاربردهای این فایل، شخصیسازی و ایجاد پیغامهای خطا است. به عنوان مثال وقتی به دلایلی سایت شما خطای 401 به بازدیدکنندگان نشان میدهد، با استفاده از این فایل میتوانید پیغام خطای دوستانه و سفارشی به آنها نشان دهید.
در این پیغام میتوانید دلیل رخ دادن این خطا و راه حلهای احتمالی آن را توضیح دهید. نمایش چنین صفحهای به بازدیدکنندگان میتواند باعث شود کاربران به جای ترک سایت، به صفحهی اصلی سایت شما برگردند.
با استفاده از دستور زیر میتوانید این صفحهی ارور را ایجاد کنید.
ErrorDocument 401 /error_pages/401.html
وقتی خطای 401 رخ دهد، سرور به آدرس این فایل میرود وصفحهی خطای ایجاد شده را نشان میدهد.
ریدایرکت صفحات
فرض کنید قصد دارید محتوای یک صفحه از سایت خود را به صفحهی دیگری منتقل کنید. برای این کار میتوانید از فایل .htaccess استفاده کنید. با استفاده از دستور زیر میتوانید محتوای مورد نظر خود را به صفحهی جدید ریدایرکت کنید.
Redirect /old_dir/ http://www.yourdomain.com/new_dir/index.html
old_dir به آدرس قدیمی محتوا اشاره میکند و به سرور میگوید اگر کاربری این لینک را درخواست کرد، او را به new_dir ریدایرکت کند.
ریدایرکت کردن به این معنا نیست که آدرس قدیمی حتما باید به یک صفحهی دیگر از همان سایت ریدایرکت شود. فرض کنید شما آدرس دامنهی سایت خود را تغییر دادهاید. میتوانید برای ریدایرکت کردن محتوای سایت قبلی خود به سایت جدید از فایل .htaccess استفاده کنید.
رمزگذاری صفحات
یکی از کاربردهای مهم فایل .htaccess، استفاده از آن برای رمزگذاری صفحات است. با استفاده از این فایل میتوانید با استفاده از نام کاربری و رمز عبور از دایرکتوریها محافظ کنید. به محض اینکه بخواهید به این دایرکتوریها دسترسی داشته باشید، یک باکس پاپآپ برای وارد کردن نام کاربری و رمز عبور در مرورگر به شما نشان داده میشود.
برای رمزگذاری صفحات، ابتدا لازم است دایرکتوریهای موردنظر خود را مشخص کنید. در نظر داشته باشید که تمام فایلها و زیر صفحات مربوط به آن دایرکتوری هم تحت تاثیر این رمزگذاری قرار میگیرند.
سپس برای رمزگذاری دستور زیر را در .htaccess وارد کنید:
AuthName "Member's Area Name"
AuthUserFile /path/to/password/file/.htpasswd
AuthType Basic
require valid-user
خط اول اسمی است که در پیغام پاپآپ به شما نمایش داده میشود.
دومین دستور محل قرار گرفتن فایل رمز را به آپاچی نشان میدهد.
خط سوم هم نوع احراز هویت را نشان میدهد. خط آخر هم تنها برای فعال کردن این قابلیت است.
با نوشتن این کد به سرور میگویید که کاربر برای استفاده از این دایرکتوری لازم است لاگین کند. از این کد وقتی استفاده میشود که قصد رمزگذاری صفحات ادمین را دارید.
با رمزگذاری دایرکتوریها میتوانید یک فضایی ویژه اعضا برای کاربران ایجاد کنید. با استفاده ازاین فایل میتوانید از بازدیدکنندهها بخواهید برای مشاهدهی کامل محتوای سایت شما، عضو سایت شوند.
اگر کاربران مرورگر خود را باز نگه دارند و بعد از مدت زمان طولانی دوباره به صفحهي سایتی که لاگین کردهاند وارد شوند، دیگر نیازی به ورود مجدد نام کاربری و رمز عبور ندارند. اما اگر صفحهي مرورگر را ببندند و دوباره باز کنند، پاپآپ برای ورود مجدد به آنها نشان داده میشود.
بلاک کاربران بر اساس شماره IP
آپاچی با ارائه این قابلیت به شما اجازه میدهد تا کاربران خاصی را بر اساس IP آنها بلاک کنید یا به کاربران خاصی دسترسی بدهید. مثلا با استفاده از این قابلیت میتوانید دسترسی به پنل ادمین را برای گروه خاصی غیرفعال کنید.
order allow,deny
deny from 255.0.0.0
deny from 123.45.6.
allow from all
دو خط وسط دستور بلاک کردن این IP ها را به آپاچی میدهد. اگر میخواهید به بقیه کاربران دسترسی بدهید دستور آخر allow from all است و برای بلاک کردن همهي کاربران به deny from all تغییر میکند.به کاربرانی که دسترسی آنها بلاک شده است ارور 403 نشان داده میشود.
تنظیم زمان سرور
برای تنظیم زمان سرور میتوانید از دستور زیر استفاده کنید:
SetEnv TZ America/Los_Angeles
بر اساس کشور خود قسمت دوم کد را تغییر دهید.
تغییر فایل ایندکس پیشفرض
گاهی ممکن است بخواهید بازدیدکنندگان را به صفحهی دیگر بهجز ایندکس پیشفرض هدایت کنید. برای این کار میتوانید از فایل .htaccess استفاده کنید. با اینکار وقتی بازدیدکننده آدرس سایت شما را وارد میکند، به جای اینکه به صفحهی home برود، صفحهی ایندکس شده توسط فایل .htaccess را مشاهده میکند.
DirectoryIndex index.php3 index.php pictures.pl index.html default.htm
دستور بالا به بیش از یک صفحه اشاره میکند. سرور ابتدا اولین فایل ایندکس شده را جستجو میکند. اگر پیدا نشد دومی را پیدا میکند و نشان میدهد و همینطور برای ادامهی ایندکسها عمل میکند.
فایل .htaccess کجاست؟
فایل .htaccess به طور پیشفرض در پوشهی اصلی همراه با محتویات سایت ذخیره میشود. این پوشه معمولا با نام Public_HTML یا www ذخیره شده است. اگر بیش از یک زیرشاخه داشته باشید، این فایلها در پوشهای به نام .htaccess ذخیره شدهاند.
اگر همچنان این فایل را پیدا نکردید، میتوانید مطلب طولانیتر ما را دربارهی مکان فایل .htaccess مطالعه کنید.
آموزش ایجاد فایل .htaccess پیشفرض در وردپرس
ممکن است با انجام تمامی مراحل همچنان فایل .htaccess را روی سرور پیدا نکنید. پس نیاز دارید که مجددا فایل .htaccess را در وردپرس ایجاد کنید.
یرای این کار باید به صفحه تنظیمات > پیوندهای یکتا بروید و تنها دکمهی ذخیره را فشار دهید. به همین سادگی فایل .htaccess مجددا ساخته میشود.