فایل htaccess. چیست و چه کاربردی دارد؟
اگر در حوزه مدیریت وبسایت فعالیت کرده باشید، احتمالاً شما هم نام فایل “htaccess.” به گوشتان خورده است. البته گاهی دسترسی به این فایل دشوار میشود و افراد نمیتوانند آن را پیدا کنند. در این مطلب جواب این سوال را خواهیم داد که فایل htaccess چیست؟ همچنین نحوه استفاده و دسترسی به آن را توضیح میدهیم.
فایل htaccess چیست؟
htaccess مخفف عبارت hypertext access (دسترسی فرامتنی) است. تلفظ صحیح آن اچ تی اَکسس است؛ اما شما میتوانید هرچیزی که دوست داشتید بخوانیدش، (چه فرقی میکنه؟) فایل htaccess یک فایل با محیط متنی است که جهت پیکربندی پوشههای مختلف در وبسرورهای آپاچی استفاده میشود. با استفاده از فایل htaccess. میتوانید برخی نیازهای خود را بدون افزونه رفع کنید. همچنین فقط با نوشتن چند خط کد در این فایل میتوانید بسیاری از کارهایی که به کد نویسی پیشرفته دارند را انجام دهید. به عنوان مثال قابلیت ریدایرکت یا محافظت از رمز عبور محتوا از جمله کارهایی است که میتوانید با این فایل انجام دهید. در ادامه مهمترین قابلیتهای فایل htaccess را به شما معرفی میکنیم.
قابلیت های فایل htaccess
همانطور که گفتیم این فایل قابلیتهای زیادی دارد و با استفاده از آن میتوانید کارهای زیادی انجام دهید. اما مهمترین کاربردهای فایل htaccess شامل موارد زیر میباشد:
- کنترل ریدایرکت
- مدیریت و رفع خطاهایی مانند خطای ۵۰۰، ۴۰۲ و ۴۰۳
- محافظت از پوشههای خاص
- تنظیمات URL
- رمزگذاری یک پوشه خاص
- مسدود کردن یک یا چند IP خاص
- تنظیمات کش
- کنترل دسترسی فیزیکی به فایلها و پوشهها
- اعمال برخی تغییرات در تنظیمات پیش فرض PHP، MySQL و Apache
- جلوگیری از نمایش تمام فایلها یا یک یا چند فایل با پسوند خاص
نحوه دسترسی به فایل htaccess چگونه است؟
برخی افراد در پیدا کردن این فایل دچار مشکل میشوند. پیدا نشدن فایل htaccess دو دلیل دارد. دلیل اول اینکه این فایل توسط کنترل پنل هاست مخفی شده است. دلیل دوم نیز این است که این فایل در هاست وجود ندارد. در ادامه آموزش میدهیم که چگونه فایلهای مخفی کنترل پنل را مشاهده کنید و یا چگونه فایل htaccess ایجاد کنید؟
فایل htaccess به طور معمول در پوشه “public_html” هاست وجود دارد. برای دسترسی به آن میتوانید به صورت مستقیم از طریق هاست اقدام کنید یا از نرمافزارهای مدیریت FTP مثل “Filezilla” استفاده کنید. در صورتی که برای کار با برنامه “Filezilla” به کمک نیاز دارید میتوانید مقاله آموزش آپلود فایل به هاست از طریق FTP را مطالعه کنید.
دسترسی به فایل htaccess از کنترل پنل هاست
برای دسترسی به فایل htaccess در دایرکت ادمین کافیست به مسیر “File Manager» public_html” بروید. اما معمولاً در کنترل پنل cPanel فایلهایی که با “.” نقطه شروع میشوند به صورت مخفی هستند. به این معنی که به صورت پیشفرض قابل مشاهده نیستند. برای نمایش فایل htaccess به صورت زیر اقدام کنید.
ابتدا وارد کنترل پنل سیپنل خود شوید. حال وارد پوشه “File Manager” شوید و در قسمت بالا سمت راست صفحه روی گزینه “Settings” کلیک کنید.
با کلیک روی این دکمه یک پنجره برای تنظیمات فایل منیجر مانند تصویر زیر باز میشود. تیک گزینه “Show Hidden Files” را انتخاب کنید و سپس روی گزینه “Save” کلیک نمایید.
پس از ذخیره تنظیمات تمام پوشههای مخفی قابل مشاهده خواهند بود. به این ترتیب میتوانید وارد پوشه “public_html” شوید و فایل htaccess را مشاهده کنید.
دسترسی به فایل htaccess از طریق نرم افزار FTP
در نرمافزارهای FTP نیر فایلهای مخفی ممکن است نمایش داده نشوند. برای دسترسی به آنها نیز باید تنظیمات نرمافزار را تغییر دهید. برای مثال در برنامه Filezilla مانند تصویر زیر وارد منوی “Server”شوید. سپس روی گزینه “Force showing hidden files” کلیک کنید تا فایلهای مخفی برای شما نمایش داده خواهد شد.
اگر از برنامهی مدیریت FTP دیگری نیز استفاده میکنید در بخش تنظیمات آن حتما گزینهای برای نمایش فایل مخفی وجود دارد.
ساخت فایل htaccess
برای ساخت فایل htaccess چند راه وجود دارد. شما میتوانید در رایانه خود فایلی با استفاده از “Notepad” بسازید و نام آن را .htaccess بگذارید و در هاست خود آپلود کنید. اما بهترین راه از نظر گنجه هاست این است که وارد کنترل پنل شوید و در هاست خود اقدام به ساخت فایل htaccess کنید. به عنوان مثال در کنترل پنل دایرکت ادمین به شکل زیر عمل نمایید:
- وارد کنترل پنل دایرکت ادمین شوید.
- مانند تصویر زیر از بخش “system info & Files” روی گزینه “File Manager” کلیک کنید.
- وارد پوشه “public_html” شوید.
- حال مقداری اسکرول را پایین آورید. از بخش پایینی سمت چپ تصویر روی گزینه “Create File” کلیک کنید.
- پنجرهای با نام “CREATE FILE” مطابق تصویر زیر برای شما باز میشود. در بخش “File Name” عبارت .htaccess را بنویسید و سپس روی “Create” کلیک نمایید.
- فایل .htaccess ایجاد شده است. روی آن کلیک کنید و کد زیر را در آن وارد کنید:
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPres
نکته: این مراحل را در کنترل پنل سیپنل نیز میتوانید به همین روش انجام دهید و اقدام به ایجاد فایل .htaccess کنید.
کاربردهای فایل htaccess
پیشتر گفتیم که htaccess قابلیتها و کاربردهای زیادی دارد و برای مدیریت و کنترل سایت شما استفاده میشود. در این مطلب سعی کردیم چند مورد از این کاربردها را توضیح دهیم. اما باید دقت کنید این فایل ممکن است از قبل دارای تنظیمات مهمی باشد. تغییر فایل htaccess در صورت اشتباه ممکن است مشکلات زیادی برای سایت شما به وجود آورد. قبل از انجام هرگونه تغییر، لطفا به نکات زیر توجه کنید:
-
- پاک نکنید: به هیچ عنوان فایل htaccess موجود را حذف نکنید مگر اینکه خالی باشد یا کاملاً مطمئن باشید که پاک کردن آن مشکلی ندارد.
- تهیه بک آپ از سایت: قبل از تغییر فایل و امتحان هر یک از موارد، اکیداً توصیه میکنیم از پرونده .htaccess و کل وبسایت خود نسخه پشتیبان تهیه کنید. گنجه هاست از تمام سرورها و هاستهای خود هر 12 ساعت بکاپ تهیه میکند و در صورتی که هاست شما از گنجه است اصلا نگران این موضوع نباشید. اما اگر قصد دارید خودتان بکاپ گیری را انجام دهید این مورد را در مقالههای قبلی آموزش دادهایم و شما میتوانید از این دو مقاله کمک بگیرید:
بکاپ گیری از هاست در دایرکت ادمین بکاپ گیری از هاست در سی پنل
- تست کنید: بهتر است قبل از تغییرات، آن را روی یک محیط تستی شبیه سایت خود امتحان کنید. در صورتی که مشکلی وجود نداشت تغییر را روی سایت خود انجام دهید.
- تولید کد: به کمک سایت htaccesseditor.com میتوانید کدهای مورد نیاز خود را تولید کنید و در فایل htaccess اضافه کنید.
در صورتی که در هر یک از موارد به کمک نیاز داشتید، تیم پشتیبانی گنجه هاست همیشه در دسترس است. با گنجه تماس بگیرید تا شما را راهنمایی کنیم. در ادامه کاربردها و کدهای htaccess را معرفی میکنیم.
تعریف ریدایرکت در htaccess
از پرکاربردترین قابلیتهای این فایل امکان تعریف ریدایرکت است. قبلا در مقاله آموزش ریدایرکت درباره این مطلب توضیح دادیم. اما شما میتوانید از طریق htaccess نیز ریدایرکت را انجام دهید. به این ترتیب با اضافه کردن کد به این فایل مشخص میکنید که سایت با http یا https نمایش داده شود، یا دامنه سایت را به آدرس دیگری منتقل کنید. شما میتوانید از طریق کد زیر ریدایرکت http به https را انجام دهید.
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
تغییر صفحه پیش فرض
اگر قصد دارید مشخض کنید که صفحه پیش فرض سایت کدام صفحه باشد و در هنگام لودینگ سایت ابتدا چه صفحهای نمایش داده شود، از کد زیر استفاده کنید:
#Alternate default index pages DirectoryIndex first.html index.htm index.html index.php
محافظت از فایل های درون هاست و جلوگیری از سرقت آن ها
فایلهایی مانند فایل قالب سایت یا دیگر پروندههای هاست شما ممکن است به راحتی توسط هکرها به سرقت روند. برای جلوگیری از این امر کد زیر را در فایل htaccess قرار دهید.
Options All -Indexes
سفارشی سازی صفحات خطا
شما میتوانید صفحات خطای سایت (Error Pages) خود را سفارشی سازی کنید. در بیشتر مواقع هنگامی که کاربران با صفحهی خطا روبرو میشوند، نمیدانند این خطا به چه علت رخ داده. همین عامل باعث سردرگمی و نارضایتی آنها میشود. از آنجایی که مهمترین اشخاص مربوط به کسب و کار آنلاین مشتریان و کاربران هستند، شما میتوانید با سفارشی سازی صفحه خطا به جای صفحات پیشفرض یک پیام اختصاصی نمایش دهید و حتی یک تجربه بد را به یک تجربه خندهدار برای مخاطب تبدیل کنید. به عنوان مثال برای خطای 404 میتوانید از کد زیر استفاده کنید.
# serve custom error pages ErrorDocument 404 /errors/404.html
البته دقت کنید ” errors/400.html” را با صفحه خطایی که جایگزین کردهاید عوض کنید. همچنین شما میتوانید برای دیگر خطاها نیز این کار را انجام دهید به عنوان مثال:
ErrorDocument 500 ErrorDocument 400
و…
جلوگیری از حملات 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 های خاص
ممکن است بخواهید برخی آدرسهای IP را از مشاهده سایت خود محروم کنید.
deny from 1.1.1.1 allow from all
البته شما باید آی پی مورد نظر را شناسایی کنید. به جای 1.1.1.1 آی پی مورد نظر را اضافه کنید.
فعال کردن Gzip Compression
خوب است بدانید شما از طریق فایل htaccess میتوانید اقدام به فعال کردن آن کنید و سرعت سایت خود را افزایش دهید. در صورتی که نمیدانید Gzip چیست مقالهی Gzip Compression را مطالعه کنید.
محافظت از دایرکتوری یا Password Protection
توانایی اعمال رمز عبور برای دایرکتوری یکی از مهمترین کاربردهای فایل htaccess است. با اعمال کد زیر میتوانید دسترسی به دایرکتوریها را با نام کاربری و رمز عبور کنترل کنید.
AuthName "Section Name" AuthType Basic AuthUserFile /home/username/.htpasswds Require valid-user
البته عبارت “Section Name” را با نام قسمتی از سایت که قصد حفاظت از آن را دارید عوض کنید. “/home/username/.htpasswds” نیز باید تغییر کند.
مخفی کردن لیست دایرکتوری ها (Directory Index)
یکی از مشکلاتی که برای سایت وجود دارد، قابلیت مشاهده فایلها و پوشهها است. به این شکل که اگر کسی نام دایرکتوری سایت را در مرورگر وارد کند، لیست تمام فایلهای آن دایرکتوری را میتواند مشاهده کند. این موضوع برای امنیت سایت خطرناک است. جهت جلوگیری از این مشکل کد زیر را در htaccess وارد کنید:
Options –Indexes
جمع بندی نهایی
در این مطلب آموختید که چگونه فایل htaccess را در هاست خود پیدا یا ایجاد کنید. htaccess امکان ایجاد تغییر مسیر وب سایت، تنظیم صفحات پیش فرض، دایرکتوریهای محافظت شده با رمز عبور و بسیاری موارد دیگر را برای شما فراهم میکند که چند مورد را به شما معرفی کردیم. اگر همچنان در این مورد سوالی دارید در بخش نظرات با ما درمیان بگذارید. تیم پشتیبانی گنجه هاست در اولین فرصت مشکل شما را حل میکند.
یک سوال داشتم
یه اسکریپت رو به تازگی خواستم نصب کنم در سرور
ولی ارور htaccess میده
چجوری باید حلش کنم
Option are not allowed here
برای رفع این مشکل باید در تنظیمات آپاچی تغییراتی اعمال گردد، که معمولا در هاست های اشتراکی انجام این تغییرات امکان پذیر نیست و باید سرور مجازی تهیه نمایید.
اگر کسی تجربه داره کمک کنه لطفا
من ssl رو فعال کردم کل مراحل رفته شده و فایل htaccess. هم ویرایش شده و توی تنظیمات وردپرس هم ویرایش شده ادرس
ولی هنگام باز شدن سایت
خطای not secure میاد
و سایت برای باز شدن مشکل داره
چطور این مشکل رو حل کنم؟
آدرس یایتتون رو بفرمایید در تیکت تا بررسی کنیم ؛ خطاهای SSL میتونه علت های مختلفی داشته باشه
عجب مقاله ی تمیزی بود. خیلی ممنون خیلی خوب توضیح دادین که فایل htaccess چیه و چه کاربردایی داره
خوشحالیم که راضی بودید
سلام
پشتیبان هاست ، به علت وجود مشکل، وردپرس را مجدد نصب کرد.
قبلا فایل htaccess حدود ۱۸۰ تا خط بود
اما الان که مجدد نصب شده حدود ۱۰ خطه
آیا مشکلی بوجود میاد از لحاظ اینکه خط های زیادی دیگر در این فایل وجود ندارد؟
سلام
اگر شما به صورت دستی کدی در htaccess خود وارد نکرده اید افزونه های نصب شده در وردپرس شما هر کدام چند خطی برای اعمال تغییرات در سایت شما اضافه می کنند.
به عنوان مثال افزونه های بهینه سازی مانند wp rocket برای افزایش سرعت سایت شما در این فایل خط های زیادی ایجاد می کنند.
اگر قالب خود را فعال کردید و مشکلی ندارد نگران نباشید مشکلی در آینده برای شما پیش نخواهد آمد.
لازم به ذکر است اگر افزونه های قبلی خود را نصب نمایید خط های این فایل افزایش پیدا خواهد کرد.
سلام
چجور از فایل .htaccess محدودیت حجم اپلود توی وردپرس رو زیاد کنم؟
ممنون میشم بگید
سلام
برای انجام این کار تنها کافی است فایل.htaccess خود را بازکنید و کدهای زیر را در انتهای آن قرار دهید.
php_value upload_max_filesize 100M
php_value post_max_size 100M
php_value max_execution_time 300
php_value max_input_time 300