در وردپرس فایلهای مختلفی داریم که هر کدام وظیفه خاصی را دنبال میکنند. اما سوالی که در این مقاله مطرح میشود این است که فایل htaccess چیست؟ htaccess یک فایل پیکربندی شده ویژه است که میتواند نحوه اجرای وبسایت شما توسط سرور شما را کنترل کند. به عنوان یکی از قدرتمندترین فایلهای پیکربندی شده، htaccess میتواند امکان تغییر مسیر 301، اتصالات SSL، حفاظت از رمز عبور، زبان پیشفرض و موارد دیگر را در سایت وردپرس شما کنترل کند. حال اگر موافق باشید با سایر موارد درباره این فایل حیاتی آشنا شویم.
فایل htaccess کجاست و چگونه آن را بسازیم؟
htaccess یک فایل پیکربندی در سطح دایرکتوری است که توسط وب سرور آپاچی پشتیبانی میشود. برای تغییر پیکربندی وب سرور (فعال یا غیرفعال کردن ویژگیهای اضافی) برای حساب خاص بدون تغییر تنظیمات سرور جهانی استفاده میشود. فایل htaccess در کل دایرکتوری که در آن قرار گرفته است، شامل همه فایلها و زیر شاخهها، اثر میگذارد. تغییرات ایجاد شده در این فایل بلافاصله اعمال میشود و نیازی به راه اندازی مجدد سرور نیست. برای دسترسی به فایل اصلی htaccess در هاست خود، مراحل زیر را دنبال کنید:
- وارد سی پنل خود شوید.
- به بخش Files >> File Manager بروید:
اگر میخواهید فایل htaccess را برای دامنه اصلی خود ویرایش کنید، به پوشه public_html بروید. اگر نیاز به ایجاد تغییراتی در دامنه افزونه دارید، به پوشه public_html/youraddondomain.com بروید. پس از آن، مطمئن شوید که گزینه Show Hidden files (dotfiles) در منوی تنظیمات فعال باشد:
فایل htaccess را پیدا کنید، کلیک راست کنید >> Edit:
اگر هیچ فایل htaccess. وجود ندارد، با خیال راحت یک فایل جدید با استفاده از گزینه File ایجاد کنید:
حال باید آماده شوید تا قوانین پیکربندی خود را اضافه کرده و آنها را ذخیره کنید. قوانین رایج استفاده از فایل htaccess در زیر فهرست شده است:
- مجوز/ احراز هویت – محدودیتهای امنیتی را برای دایرکتوری/دایرکتوری فرعی مشخص میکند.
- شما میتوانید از یک دایرکتوری یا چندین مورد از آنها با رمز عبور محافظت کنید و هر زمان که بازدیدکننده سعی میکند به آن دسترسی پیدا کند، نام کاربری و رمز عبور مورد نیاز است. برای تنظیم چنین امنیتی، باید:
- دایرکتوری را که میخواهید از آن محافظت کنید در پوشه /home/cpanel_user/.htpasswds/ ایجاد کنید (به عنوان مثال، برای public_html/test مسیر .htpasswds/public_html/test/ خواهد بود).
- یک فایل passwd در این دایرکتوری ایجاد کنید و جزئیات دسترسی هش شده را با استفاده از این مولد آنلاین اضافه کنید.
- دستورات زیر را به htaccess اضافه کنید:
AuthType Basic AuthName "Directory Name" AuthUserFile "/home/cpanel_user/.htpasswds/public_html/test/passwd" require valid-user
کاربردهای htaccess چیست؟
حال که فهمیدیم فایل htaccess چیست دیگر میدانیم که این فایل در سایت نقش مهمی ایفا کرده و قطعا دارای کاربردهای متعددی است که در ادامه به شرح هر کدام میپردازیم.
- ریدارکت کردن
- تغییر صفحه پیشفرض سایت
- حفظ امنیت فایلها
- سفارشی سازی کردن صفحات 404
- مقابله با حملات xss
- امکان ذخیرهسازی فایل پنهان
- مسدود کردن برخی از آی پی ها
- محافظت از دایرکتوری
- مخفی سازی لیست دایرکتوری
در ادامه درمورد هر کاربرد توضیحاتی را ارائه میدهیم:
ریدایرکت کردن به کمک htaccess
یکی از کاربردیترین اعمالی که این فایل میتواند انجام دهد ریدایرکت کردن در وردپرس است. برای این منظور از دستور زیر برای این فعل استفاده میکند:
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
تغییر صفحه پیش فرض
شما میتوانید صفحه پیشفرضی که در سایت در هر بخشی ظاهر میشود را به صفحه دلخواه خود تغییر دهید. مثلا فرض کنید پس از خرید و انجام پرداخت صفحه موردنظری که به کاربر نشان داده میشود صفحه تماس با ما باشد. این کار با کمک فایل htaccess امکانپذیر است:
#Alternate default index pages DirectoryIndex first.html index.htm index.html index.php
محافظت و حفظ امنیت فایل ها
فایل htaccess از فایلهای مهم مانند قالب و سایر فایلهایی که امکان به سرقت رفتن توسط هکرها را دارند، محافظت میکند. فقط کافیست کد زیر را در آن تعریف کنید:
Options All -Indexes
سفارشی کردن صفحات خطا
صفحات خطا بطور پیشفرض ساختار سادهای دارند اما شما میتوانید آنها را به طرح دلخواه خود سفارشی کنید تا برای مخاطب جذابتر باشند. مثلا برای خطای رایج 404 میتوان از کد زیر در فایل htaccess استفاده کرد:
# serve custom error pages ErrorDocument 404 /errors/404.html
مقابله با حملات XSS
برای مقابله با این حملات کافیست کد زیر را در فایل htaccess قرار دهید:
# Blocks some XSS attacks <IfModule mod_rewrite.c> RewriteCond %{QUERY_STRING} (\|%3E) [NC,OR] RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) RewriteRule .* index.php [F,L] </IfModule>
امکان ذخیره حافظه پنهان
برای اینکه سرعت سایت خود را بالاتر ببرید به کش شدن صفحات در مرورگر کاربران احتیاج دارید. این کار را میتوان با وارد کردن کد زیر در فایل htaccess مدیریت کرد:
# Enables browser caching <IfModule mod_expires.c> ExpiresActive On ExpiresByType image/jpg "access 1 year" ExpiresByType image/jpeg "access 1 year" ExpiresByType image/gif "access 1 year" ExpiresByType image/png "access 1 year" ExpiresByType text/css "access 1 month" ExpiresByType application/pdf "access 1 month" ExpiresByType text/x-javascript "access 1 month" ExpiresByType application/x-shockwave-flash "access 1 month" ExpiresByType image/x-icon "access 1 year" ExpiresDefault "access 2 days" </IfModule>
مسدود کردن کاربران
کاربران را با آدرس IP یا دامنه مسدود میکند. مسدود کردن بازدیدکنندگان ناخواسته یا اجازه دسترسی به بخشهای خاصی از وبسایت توسط مالک آن، به عنوان مثال، ناحیه مدیریت بسیار مفید است. برای تنظیم قوانین مسدودسازی خاص، یک فایل htaccess. با متن زیر ایجاد کنید:
- برای اجازه دسترسی به دیگران و مسدود کردن کاربران با آدرس IP X.X.X.X:
<RequireAll> Require all granted Require not ip X.X.X.X </RequireAll>
- برای مسدود کردن تمام بازدیدکنندگان به جز IP های خاص X.X.X.X و Y.Y.Y.Y:
<RequireAll> Require all denied Require ip X.X.X.X Require ip Y.Y.Y.Y </RequireAll>
محافظت از دایرکتوری یا Password Protection
یکی دیگر از راههای امنیتی برای فایلهای سایت، قرار دادن رمز روی آنهاست. برای این منظور نیز میتوانید کد زیر را در htaccess وارد کنید:
AuthName "Section Name" AuthType Basic AuthUserFile /home/username/.htpasswds Require valid-user
مخفی کردن لیست دایرکتوری
در حالت عادی اگر کسی نام دایرکتوری شما را بداند و آن را در مرورگر وارد کند، با لیست دایرکتورهای سایت شما مواجه میشود. برای اینکه این مسئله را ایمن و محدود سازید از کد زیر برای مخفی کردن آن در htaccess استفاده کنید:
Options –Indexes
نتیجه گیری
در این مقاله متوجه شدیم که فایل htaccess چیست و چه کاربردهای مهمی دارد و آن را در کجا میتوان پیدا کرد. در واقع میتوان گفت که این فایل یکی از حیاتیترینها بوده و بجای نصب برخی افزونههای مهم میتوان دستوراتی را در آن وارد کرد. فقط باید حواستان باشد که قبل از هر تغییری از آن نسخه پشتیبان تهیه کنید تا سایت را دچار مشکل نکند.