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

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

 

htaccess فایلی است در پوشه اصلی هاست شما یعنی public-html که میتوانید در آن کد هایی را اعمال کنید.

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

اگر این فایل را در پوشه اصلی هاست خود پیدا نکردید از آموزش زیر جهت نمایش آن استفاده کنید.

نمایش فایل های مخفی و htaccess در CPanel

در صورتی که باز هم نتوانستید این فایل را بیابید پس باید آن را بسازید. جهت انجام این کار , پس از ورود به فایل public-html موجود در File Manager هاست خود کافی است بر روی +File موجود در بالای صفحه کلیک کنید. این فایل نامی ندارد پس نقطه ای بگذارید و پسوند آن را که htaccess است را تایپ کنید. سپس بر روی Create کلیک کنید تا فایل ایجاد شود.

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

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

برای اعمال کد در این فایل , کلیک راست کرده و روی Edit کلیک کنید.

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

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

1. امنیت فایل .htaccess

جهت ایجاد امنیت برای خود فایل htaccess کد زیر را در ابتدای این فایل قرار دهید:

<files “.htaccess”>
order allow,deny
deny from all
</files>
2. معرفی زبان پیشفرض

برای دستور به آپاچی جهت ارسال صفحات با زبان معینی میتوانید از کد زیر استفاده کنید:

# pass the default character set
AddDefaultCharset utf-8
3. مانع شدن از سرقت فایل ها و پوشه های داخل هاست

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

Options All -Indexes
4. تعیین کردن صفحات سفارشی برای صفحه های خطا

هنگام بروز خطا در سایت برگه هایی را میتوان جهت نمایش به کاربر تعیین کرد. جهت جایگزینی صفحات خود با صفحات پیشفرض سایت میتوانید از دستور زیر استفاده کنید:

ErrorDocument 401 /error/401.php
ErrorDocument 403 /error/403.php
ErrorDocument 404 /error/404.php
ErrorDocument 500 /error/500.php
5. جلوگیری از ارسال دیدگاه اسپم در وردپرس

جهت جلوگیری از ارسال دیدگاه های اسپم در وردپرس افزونه هایی نیز وجود دارد اما شما میتوانید از کد زیر نیز برای انجام این کار استفاده کنید.

RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*yourblog.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]

نکته: کد معرفی شده را در خط چهارم آدرس سایت خود وارد کنید.

6. بن کردن اسپمر ها

با وارد کردن دستور زیر میتوانید آی پی مورد نظر را مسدودسازی کنید:

<Limit GET POST>
order allow,deny
deny from 200.49.176.139
allow from all
</Limit>

بخش “allow from all” در این دستور به معنای اجازه دسترسی به تمامی آی پی ها و بخش “deny from 200.49.176.139” به معنای مسدودسازی آی پی تعیین شده میباشد که میتوانید تعداد بیشتری نیز به این بخش اضافه کنید.

درصورتی که تمایل داشته باشید تنها به آی پی خاصی اجازه دسترسی دهید میتوانید بجای دستور “allow from all” از دستور “allow from 188.50.38.143” استفاده کنید. همچنین وارد کردن دستور “deny from all” بجای دستور “deny from 200.49.176.139” باعث مسدودسازی تمامی آی پی ها از جمله خود شما میشود.

نکته: درصورتی که افزودن بخش “<Limit GET POST>” و “</Limit>” در کد ها باعث بروز مشکل میشود میتوانید آن را از کد مدنظر حذف کنید.

7. تغییر عنوان و پسوند فایل پیشفرض Index

جهت فراخوانی آدرس پیشفرض فایل های Index.html یا Index.php یا … بارگذاری میشوند. درصورتی که تمایل به تغییر این فام های پیشفرض دارید از کد زیر استفاده کنید:

DirectoryIndex file.php file.html

با اعمال این کد از این پس فایل های file.php یا file.html بارگذاری خواهند شد.

8. حذف Category از آدرس سایت

برای حذف کلمه category از آدرس سایت که علاوه بر کوتاه شدن URL سایت تاثیر به سزایی نیز در بهبود سئوی سایت شما دارد , میتوانید کد زیر را اضافه کنید:

RewriteRule ^category/(.+)$ http://www.yourblog.com/$1 [R=301,L]

بخش “www.yourblog.com” را با آدرس سایت خود کامل کنید.

9. ورود به سایت با www یا بدون www

دقت کنید که هرگز سایت شما با هر دو روش امکان بارگذاری نداشته باشد چرا که ربات های گوگل تصور میکنند که دو دامنه یک مطلب را منتشر میکند و این باعث کاهش ارزش هر دو میشود.

ریدایرکت آدرس از www به بدون www و بالعکس در htaccess

10. مخفی کردن فرمت ها

از دیگر راه های برقراری امنیت مخفی کردن فرمت ها است به این صورت که اسکریپت های PHP با فرمت دیگری برای مثال ASP باز شوند. جهت اعمال این کار کد زیر را وارد کنید:

AddType application/x-httpd-php .asp .jsp
11. افزایش امنیت فایل wp-config.php

جهت جلوگیری از سرقت اطلاعات و دسترسی به پایگاه داده , کد زیر را در فایل htaccess قرار دهید:

<files wp-config.php>
order allow,deny
deny from all
</files>
12. محدود کردن نوع فایل های قابل اجرا و نمایش

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

Options +FollowSymlinks
RewriteEngine On
rewritecond %{REQUEST_FILENAME} !^(.+).css$
rewritecond %{REQUEST_FILENAME} !^(.+).js$
rewritecond %{REQUEST_FILENAME} !file.php$
RewriteRule ^(.+)$ /deny/ [nc]

با اعمال کد بالا کاربران تنها قادر به باز کردن فایل ها با پسوند های php , js , css خواهند بود و درصورت درخواست برای سایر پسوند ها به پوشه deny ریدایرکت خواهند شد.

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

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

php_value upload_max_filesize 20M

کد بالا حداکثر حجم را روی 20 مگابایت تنظیم خواهد کرد.

14. ریدایرکت کردن

از کد زیر جهت ریدایرکت کردن میتوان استفاده کرد:

Redirect /Dirold/old.html http://site.com/DirNew/new.html
15. حداکثر زمان دریافت اطلاعات POST و GET

کد زیر حداکثر زمان دریافت اطلاعات POST و GET را تعیین میکند:

php_value max_input_time 250
16. اعمال محدودیت در حجم پست ارسالی

با قرار دادن کد زیر حداکثر حجم ارسالی هر پست 2 مگابایت اعمال میشود:

php_value post_max_size 2M
17. نمایش پیام Request Time در بازه زمانی معین

با استفاده از کد زیر میتوانید حداکثر زمان درخواست فراخوانی یک صفحه را تعیین کنید:

php_value max_execution_time 200
18. ممانعت از سرقت پهنای باند و فایل ها

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

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?site.com/ .*$ [NC]
RewriteRule \.(gif|jpg|swf|flv|png)$ /feed/ [R=302,L]
19. افزایش امنیت محتوای پوشه wp-includes

جهت افزایش امنیت محتوای پوشه wp-includes کافی است کد زیر را در فایل htaccess قرار دهید:

# Block the include-only files.
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ – [F,L]
RewriteRule !^wp-includes/ – [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ – [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php – [F,L]
RewriteRule ^wp-includes/theme-compat/ – [F,L]
20. مدیریت cache فایل ها

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

# BEGIN Expire headers
<ifModule mod_expires.c>
ExpiresActive On
ExpiresDefault “access plus 1 month”
ExpiresByType image/x-icon “access plus 1 year”
ExpiresByType image/jpeg “access plus 1 month”
ExpiresByType image/png “access plus 1 month”
ExpiresByType image/gif “access plus 1 month”
ExpiresByType image/jpg “access plus 1 month”
ExpiresByType application/x-shockwave-flash “access plus 1 month”
ExpiresByType text/css “access plus 1 month”
ExpiresByType text/javascript “access plus 1 year”
ExpiresByType application/javascript “access plus 1 year”
ExpiresByType application/x-javascript “access plus 1 year”
ExpiresByType text/html “access plus 600 seconds”
ExpiresByType application/xhtml+xml “access plus 600 seconds”
ExpiresByType font/ttf “access plus 1 year”
ExpiresByType font/woff “access plus 1 year”
</ifModule>
# END Expire headers
# BEGIN Cache-Control Headers
<ifModule mod_headers.c>
<filesMatch “\.(ico|jpe?g|png|gif|swf|woff|ttf)$”>
Header set Cache-Control “max-age=2592000, public”
</filesMatch>
<filesMatch “\.(css)$”>
Header set Cache-Control “max-age=2592000, public”
</filesMatch>
<filesMatch “\.(js)$”>
Header set Cache-Control “max-age=2592000, private”
</filesMatch>
<filesMatch “\.(x?html?|php)$”>
Header set Cache-Control “max-age=600, private, must-revalidate”
</filesMatch>
</ifModule>
# END Cache-Control Headers
# BEGIN Turn ETags Off
<ifModule mod_headers.c>
Header unset ETag
</ifModule>
FileETag None
# END Turn ETags Off
# BEGIN Remove Last-Modified Header
<ifModule mod_headers.c>
Header unset Last-Modified
</ifModule>
# END Remove Last-Modified Header
21. فعالسازی قابلیت Gzip

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

# BEGIN Compress text files
<ifModule mod_deflate.c>
<filesMatch “\.(css|js|x?html?|php|woff|ttf|png|jpg|gif)$”>
SetOutputFilter DEFLATE
</filesMatch>
</ifModule>
# END Compress text files
22. رفع مشکل تعداد آیتم های فهرست وردپرس

زمانی که درحال ساخت یک فهرست میباشید از یک تعدادی به بعد دسته ها اضافه نخواهند شد. جهت رفع این محدودیت , کد زیر را اعمال کنید:

<IfModule mod_php.c>
php_value suhosin.post.max_vars 7000
php_value suhosin.request.max_vars 7000
</IfModule>

امیدواریم آموزش مفیدی برای شما بوده باشد.

 

آموزش های مرتبط:

حذف فايل htaccess

آموزش افزایش حجم آپلود در وردپرس

آموزش ریدایرکت دامنه در دایرکت ادمین

فعال کردن فشرده سازی gzip در cPanel

آموزش آپلود فایل‌ در هاست از طریق FTP

آموزش فعال کردن GZIP در Website Panel

آموزش تغییر مسیر فایل wp-config.php در وردپرس

آپلود مستقیم و سریع فایل ها در هاست با دستور PHP

آموزش ریدایرکت HTTP به HTTPS به صورت خودکار در Cpanel

 

خرید هاست ایران

آموزش های مرتبط