whmcsآموزشآموزش های دایرکت ادمینآموزش های سی پنلجوملاسیستم مدیریت محتوالینوکسمیزبانی وبوردپرس

دسترسی به فایل htaccess

دسترسی به فایل htaccess در هاست و کاربرد های آن

فایل htaccess یک فایل پیکربندی تنظیمات سرور است که سرور را نسبت به انجام کارهای مختلف بر روی وبسایت شما مدیریت می‌کند. به عنوان مثال، چگونگی ارجاع کاربران، اعمال محدودیت برای پوشه wp-admin وردپرس و محافظت از امنیت دایرکتوری‌های مختلف همگی بخشی از وظایف این فایل مهم هستند. فایل htaccess در وردپرس یک فایل پیکربندی قدرتمند است که با استفاده از آن می‌توانید برخی از نیاز های خود را بدون افزونه رفع کنید. این فایل در روت پوشه‌ی وردپرس، یعنی جایی که فایل های وردپرس قرار گرفته‌اند، وجود دارد. اما گاهی دسترسی به فایل htaccess در وردپرس سخت می‌شود و تقریبا افراد نمی‌توانند آن را بیابند. دلیل چیست؟ چگونه باید این فایل را پیدا کنیم؟ در این مقاله خدمت شما هستیم تا به این سوالات که مطمئنم پرسش بسیاری از کاربران است، پاسخ دهیم.

فایل htaccess کجاست؟ نحوه دسترسی به htaccess چگونه است؟

این فایل به صورت معمول در دایرکتوری public_html هاست وجود دارد. در اغلب سیستم های مدیریت محتوا مثل وردپرس و دروپال این فایل بصورت خودکار ایجاد می شود.

در صورتیکه کنترل پنل هاست شما cpanel می باشد، این کنترل پنل به صورت پیش فرض فایل های مخفی را نمایش نمی دهد، بنابراین برای نمایش فایل‌های مخفی کافیست روی دکمه Settings در سمت راست و بالای صفحه کلیک کنید و در پنجره باز شده، تیک گزینه Show hidden files را بزنید:

show hidden file - دسترسی به فایل htaccess

با این تغییر پس از ذخیره می‌توانید وارد پوشه public_html شوید و فایل htaccess را مشاهده نمایید. در پوشه Home نیز سایر پوشه های مخفی نظیر Trash که فایل های حذف شده در آن قرار دارد قابل مشاهده خواهد بود.

در صورتیکه کنترل پنل هاست شما Directadmin است پس با صحنه زیر باید مواجه می شوید:

htaccess directadmin - دسترسی به فایل htaccess

معرفی سایت جهت ساخت htaccess

شما از طریق سایت htaccesseditor.com بسادگی می توانید با توجه به کاربرد مورد نظرتان کدی که لازم است در htaccess درج کنید را تولید نموده و در فایل htaccess سایت خود اضافه کنید.

کاربرد های htaccess

این فایل که معمولا با نصب CMS های معروف و Open Source مانند WordPress، Joomla و Drupal به صورت خودکار در مسیر اصلی اسکریپت ایجاد و محتوا سازی می شود، عهده‌دار وظایف مهمی نظیر موارد زیر می‌باشد:

تغییر عنوان و فرمت فایل اصلی index

شما با استفاده از این کد می توانید نام و فرمت فایل اصلی سایت خود را تغییر دهید:

DirectoryIndex file.php file.htm

جلوگیری از سرقت فایلهای و فولدرهای درون هاست

بیشتر وقتها اطلاعاتی مثل فایل‌های قالب اختصاصی شما که بر روی هاست قرار دارند و یا فایل‌هایی که به صورت zip شده در هاست خود ذخیره کرده‌اید به راحتی با مرور هاست شما توسط سایرین کشف و به سرقت میرود، برای جلوگیری از این امر کد زیر رو در اننهای فایل htaccess قرار دهید.

Options All -Indexes

محدودیت دسترسی با ip های خاص در  htaccess

در برخی مواقع مثل بازدیدهای غیر واقعی که درخواست های زیادی از یک یا رنجی از ip به سایت شما  ارسال می شوند و باعث کاهش سرعت لود سایت شما می گردند و یا مسدود کردن ip اسپمرها می توانید Ip های مورد نظر را از طریق فایل  htaccess محدود کنید.

deny from 1.2.3.4

allow from all

بجای ۱٫۲٫۳٫۴ نیاز است ip یا رنج ip مورد نظر را اضاف کنید.

همچنین برای امنیت مدیریت سایت شما نیز می توانید در مسیر مدیریت سایت بعنوان مثال در وردپرس در مسیر wp-admin یک فایل .htaccess ایجاد نموده و دسترسی کلیه Ip ها بغیر از ip استاتیک خودتان را محدود کنید بدین شکل تنها از سیستم شما به مسیر مدیریت سایت دسترسی وجود خواهد داشت.

deny from all

allow from 1.2.3.4

بجای ۱٫۲٫۳٫۴ نیاز است ip یا رنج ip مورد نظر را اضاف کنید.

افزایش امنیت فایل در htaccess (ایجاد محدودیت در دسترسی به فایل)

جهت عدم دسترسی سایرین به برخی از فایل های مهم سایت مثل فایل های کانفیگ کد زیر را در htaccess درج کنید:

<files wp-config.php>

order allow,deny

deny from all

</files>

بجای wp-config.php نیاز است نام فایل مورد نظر را درج نمائید.

مخفی کردن لیست دایرکتوری ها

یکی از مشکلاتی که در سایت ها وجود دارد قابلیت مشاهده کردن فایل ها و پوشه ها میباشد که موجب میشود تا هر کسی بتواند محتوای آپلود شده در سایت شما را ببیند و  بعنوان مثال قادر خواهند بود قالب سایت شما را کپی کنند.

index - دسترسی به فایل htaccess

جهت جلوگیری از این مشکل کد زیر را در htaccess درج کنید:

Options –Indexes

کش شدن سایت بر روی مرورگر با کد  htaccess

کش شدن سایت بر روی مرورگر باعث میشود مصرف ترافیک ، مصرف رم و cpu در سایت شما کاهش یابد و در نتیجه سرعت لود شدن سایت شما افزایش یابد.

کد زیر را در انتهای فایل 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>

محدود کردن نوع فایلهای قابل اجرا و نمایش

برای حفظ امنیت و اطلاعات سایت می‌توانید پسوند فایل‌هایی که بتوان اجرا کرد رو تعیین کنید:

Options +FollowSymlinks

RewriteEngine On

rewritecond %{REQUEST_FILENAME} !^(.+).css$

rewritecond %{REQUEST_FILENAME} !^(.+).js$

rewritecond %{REQUEST_FILENAME} !file.php$

RewriteRule ^(.+)$ /deny/ [nc]

اضافه کردن mime-type از طریق htaccess

حذف پرسش سرور پیرامون اینکه فایل را باز می نمایید و یا دانلود می کنید. براحتی فایل مورد نظر را دانلود نمایید.

AddType application/octet-stream .pdf

AddType application/octet-stream .zip

AddType application/octet-stream .mov

فعال کردن  gzip

شما از طریق htaccess می توانید gzip-compression  را فعال نموده و این تغییر در افزایش سرعت سایت موثر می باشد

gzip 1 - دسترسی به فایل htaccess

<ifModule mod_gzip.c>

mod_gzip_on Yes

mod_gzip_dechunk Yes

mod_gzip_item_include file .(html?|txt|css|js|php|pl)$

mod_gzip_item_include handler ^cgi-script$

mod_gzip_item_include mime ^text/.*

mod_gzip_item_include mime ^application/x-javascript.*

mod_gzip_item_exclude mime ^image/.*

mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*

</ifModule>

ایجاد محدودیت در آپلود فایل

از طریق کد زیر می توانید حداکثر حجم فایل قابل آپلود رو ۲۰ مگابایت تنظیم کنید:

php_value upload_max_filesize 20M

ایجاد محدودیت در حجم پست ارسالی

از طریق کد زیر می توانید حداکثر حجم هر پست رو ۲ مگابایت مشخص کنید:

php_value post_max_size 2M

تنظیم محدودیت حافظه memory_limit

از طریق کد زیر می توانید میزان محدودیت حافظه را مشخص کنید:

php_value memory_limit 128M

تعریف ریدایرکت در htaccess

یکی از پر کاربردترین موارد در htaccess امکان تعریف ریدایرکت و فوروارد است. شما می توانید از طریق درج کد در این فایل سایت یا لینک های مختلف آن را به آدرس دیگری هدایت کنید، یا مشخص کنید سایت با http  به  https و یا با www به بدون www ریدایرکت شود.

redirect htaccess - دسترسی به فایل htaccess

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

ایجاد صفحات پیش فرض خطا

ایجاد صفحه خطای اختصاصی به این معناست که مثلا لحظه‌ای وبسایت شما با یکی از خطاهای رایج HTTP که در بالا در مورد برخی از آن‌ها صحبت شد، مواجه می‌شود؛ برای مثال فایل یا صفحه‌ای وجود ندارد و بازدید کننده با وارد کردن آدرسی که در سرور و وبسایت شما وجود ندارد با خطای ۴۰۴ مواجه می‌شود. حال ممکن است او معنی این خطا را نداند و یا حتی اگر بداند باز دچار سردرگمی شود و از بازدید وبسایت شما منصرف شود. در این شرایط چنانچه ما از پیش صفحه‌ای ساخته باشیم تا بازدیدکننده به جای مواجهه با خطای ۴۰۴، وارد صفحه‌ای شود که به درستی به او این پیغام را دهد که «فایل مورد نظر وجود ندارد؛ ممکن است این فایل به دلیلی حذف و یا جابه‌جایی آن به مسیر دیگر روی داده باشد»، این گونه بازدیدکننده حس بهتری نسبت به آن خطا پیدا می‌کند.

ErrorDocument 401 /error_pages/401.html
ErrorDocument 404 /error_pages/404.html
ErrorDocument 500 /error_pages/500.html

نحوه جلوگیری از عمل Hotlink در فایل  .htaccess (جلوگیری از استفاده تصاویر سایت در سایت های دیگر)

Hotlink Protection باعث می‌گردد از کپی شدن اطلاعات شما در وبسایت‌های دیگر جلوگیری شود برای مثال چنانچه تصویری در یک دایرکتوری از سرویس میزبانی شما وجود دارد، از نمایش آن تصویر در وبسایت‌های دیگر جلوگیری به عمل می‌آید و همچنین چنانچه فایلی قابلیت دانلود با لینک مستقیم با استفاده از وبسایت شما را دارد و لینک مذکور در وبسایتی دیگر کپی گردیده باشد، کاربران آن وبسایت با کلیک بر روی لینک مذکور ابتدا به آدرس وبسایت شما ارجاع داده می‌شوند.  این امر باعث افزایش ترافیک و لود سایت شما می شود. در این صورت پهنای باند شما در حالی به پایان می رسد که بازدیدها از سایت شما صورت نگرفته است.

با استفاده از htaccess مانع از استفاده ی مطالب خود در سایر وب سایت ها می شوید مخصوصا استفاده از تصاویر وب سایت شما.

توجه داشته باشید ، این قابلیت مستلزم آن است که mod_rewrite بر روی سرور شما فعال باشد. بنابراین حتما با مدیر سیستم خود و یا شرکت میزبانی وب ارتباط برقرار نمایید.

دستورالعمل جلوگیری از استفاده از مطالب برای فایل ها با فرمت های ‘GIF’ ، ‘ JPG’ و ‘CSS’ که باید در فایل htaccess قرار بگیرد در زیر آمده است:

RewriteEngine on

RewriteCond %{HTTP_REFERER} !^$

RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain.com/.*$ [NC]

RewriteRule \.(gif|jpg|css)$ - [F]

‘yourdomain.com’ با آدرس وب سایت جایگزین میشود.

مسدود کردن حملات XSS

هدف از حمله XSS، تزریق کدهای مخرب برای اجرا در صفحات وبی که به کاربرانشان اعتماد کرده اند(اگر بخواهیم خوش بین باشیم) است. این کدها مانند کدهایی که از سمت سرور به سمت کلاینت میرسند، اجرا خواهند شد و میتوانند به همه اطلاعاتی که کاربر میتواند دسترسی داشته باشد، دسترسی پیدا کنند مانند کوکی، Session و … .

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>

اعمال رمز عبور برای دایرکتوری‌(Password Protection)

با اعمال چند خط کد ساده در فایل htaccess. می‌توان دسترسی به دایرکتوری‌ها را با تعریف نام‌ کاربری و رمز عبور در فایلهای htpasswd. کنترل نمود.

محتویات htaccess پیشفرض در وردپرس

بصورت پیش فرض فایل Htaccess وردپرس شامل کد زیر می باشد،  در صورتیکه این فایل وجود نداشته باشد یا این کد از 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 WordPress

حفاظت از htaccess. از دسترسی غیر مجاز

همانطور که مشاهده کردید، کارهای زیادی وجود دارد که می توانید با استفاده از فایل htaccess. انجام دهید.  با توجه به قدرت و کنترل آن بر روی وب سرور شما مهم است که این فایل را از دسترسی غیرمجاز توسط هکرها محافظت کنید. جهت حفاظت از این فایل به سادگی کد زیر را در فایل htaccess. خود اضافه کنید:

<files ".htaccess">

order allow,deny

deny from all

</files>

سخن پایانی

فایل htaccess. برای اکثر کسانی که با وردپرس سروکار دارند آشناست. اما برخی در پیدا کردن این فایل به مشکل می‌خورند. پیدا نشدن این فایل ۲ دلیل عمده دارد:

  1. این فایل توسط کنترل پنل هاست مخفی شده است.
  2. فایل htaccess در هاست شما موجود نیست.

برای اینکه بتوانیم دسترسی به فایل htaccess در وردپرس داشته باشیم باید این دو مورد را بررسی کرده و مشکل را رفع کنیم. دقیقا کاری که در این مقاله انجام دادیم، همین است.
اگر پیشنهاد و نظر دیگری دارید، خوشحال می‌شویم از قسمت دیدگاه‌ها برایمان به اشتراک بگذارید.

برچسب ها

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا
بستن
بستن