17 ترفند و نکته Htaccess در هاست لینوکس cPanel

بعضی از کاربران هاست لینوکس ممکن است از قدرت های htaccess آگاهی نداشته باشند بعضی از این ترفندها برای حفاظت وب سرور شما از حملات هکرها ضروری میباشند و بعضی دیگر قادر به انجام کارهای ساده و مؤثر از قبیل تغییر مسیر بهینه سازی وب سرور و وب سایت خواهند بود.
Htaccess ها زیر قادر خواهند بود تا برای تغییر مسیر و بهینه سازی وب سرور به سادگی کمک کنند.


1 - تنظیم منطقه زمانی:

گاهی اوقات هنگامی که شما از تاریج و یا تابع mktime در پی اچ پی استفاده می کنید آن به شما یک پیغام خنده دار در مورد منطقه زمانی به شما نشان خواهد داد.  حل این مشکل آسان میباشد تنظیم منطقه زمانی را در سرور خود بگذارید. لیست پشتیبانی منطقه زمانی را می توانید در اینجا پیدا کنید.


SetEnv TZ Australia/Melbourne


2 - مطلب SEO و 301 مسیر تغییر دائمی:

امروزه بعضی از موتورهای جستجوی مدرن قابلیت شناسایی 301 تغیر مسیر دائمی را دارند و رکوردهای موجود را بروز رسانی می کنند.


Redirect 301 http://www.test.com/home http://www.test.com/

 

3 - بر کنار کردن دیالوگ دانلود:

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


AddType application/octet-stream .pdf
AddType application/octet-stream .zip
AddType application/octet-stream .mov


4 -  حذف WWW

یکی از دستور العمل ها SEO این است که اطمینان حاصل کنید که فقط یک URL به وب سایت شما اشاره کند بنابراین شما نیاز خواهید داشت که همه ترافیک WWW را به مسیر غیر WWW تغیر مسیر دهید. برای این کار از کچ های زیر استفاده کنید.


RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.joomir.com [NC]
RewriteRule ^(.*)$ http://joomir.com/$1 [L,R=301]


5 – سفارشی کردن صفحه خطا:

ایجاد یک صفحه خطای سفارشی برای هر یک از کدهای خطا


ErrorDocument 401 /error/401.php
ErrorDocument 403 /error/403.php
ErrorDocument 404 /error/404.p 
ErrorDocument 500 /error/500.php


6 - فشرده سازی فایل ها:

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


# compress text, html, javascript, css, xml:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript


7 – فایل های ذخیره سازی (Cache files ):

ذخیره فایل یکی دیگر از روش ها معروف در زمان بهینه سازی وب سایت در حال بارگذاری میباشد.


<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>


8 – غیر فعال کردن ذخیره سازی برای نوع خاصی از فایل ها:

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

# explicitly disable caching for scripts and other dynamic files
<FilesMatch ".(pl|php|cgi|spl|scgi|fcgi)$">
Header unset Cache-Control
</FilesMatch>


امنیت

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

1 – حفاظت Hotlinking با htaccess
آیا شما از سرقت پهنای باند وب سایت خود با استفاده از تصاویری که شما در وب سرور خود میزبانی کرده اید متنفر هستید؟ با استفاده از کد زیر شما می توانید از این مورد جلوگیری کنید.


RewriteBase /
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?joomir.com/.*$ [NC]
RewriteRule .(gif|jpg|swf|flv|png)$ /feed/ [R=302,L]


2 - جلوگیری از هک کردن وب سایت خود
اگر شما می خواهید سطح امنیت وب سایت خود را ارتقاط دهید از کد های زیر استفاده کنید این کدها بعضی از تکنیک های هک را با کشف کردن URL مخرب جلوگیری خواهند کرد.


RewriteEngine On
# proc/self/environ? no way! 
RewriteCond %{QUERY_STRING} proc/self/environ [OR]
# Block out any script trying to set a mosConfig value through the URL 
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]

# Block out any script trying to base64_encode crap to send via URL
RewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR]

# Block out any script that includes a <script> tag in URL
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]

# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|[|\%[0-9A-Z]{0,2}) [OR]

# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|[|\%[0-9A-Z]{0,2})

# Send all blocked request to homepage with 403 Forbidden error!
RewriteRule ^(.*)$ index.php [F,L]

3 – مسدود کردن دسترسی به فایل htaccess خود
کد زیر از دسترسی کاربر به فایل htaccess جلوگیری خواهد کرد. همچنین شما می توانید فایل ها متعددی را هم مسدود کنید.


# secure htaccess file
<Files .htaccess>
order allow,deny
deny from all
</Files>

# prevent viewing of a specific file
<Files secretfile.jpg>
order allow,deny
deny from all
</Files>

# multiple file types
<FilesMatch ".(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$">
Order Allow,Deny
Deny from all
</FilesMatch>

4 – تغیر نام فایل htaccess
شما می توانید نام فایل htaccess را به چیز دیگری برای جلوگیری از دسترسی دیگران تغیر دهید.


AccessFileName htacc.ess


5 – غیر فعال کردن براوز کردن دایرکتوری
از نمایش دادن شاخص دایرکتوری توسط سرور جلوگیری کنید.

# disable directory browsing
Options All -Indexes
# enable directory browsing
Options All +Indexes


6 – تغیر صفحه پیش فرض ایندکس
شما می توانید صفحه پیش فرض index.html یا index.php و یا index.htm به چیز دیگری تغییر دهید.


DirectoryIndex business.html


7 – مسدود کردن بازدید کننده ناخواسته بر اساس اشاره دامنه


# block visitors referred from indicated domains
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_REFERER} scumbag.com [NC,OR]
RewriteCond %{HTTP_REFERER} wormhole.com [NC,OR]
RewriteRule .* - [F]
</ifModule>


8 – مسدود کردن درخواست بر اساس سربرگ User-Agent
این روش می تواند سهمیه پهنای باند خود را با مسدود کردن بوت ها خاصی یا از هک عنکبوتی به وارد شدن وب سایت خود جلوگیری کنید.


# block visitors referred from indicated domains
<IfModule mod_rewrite.c>
SetEnvIfNoCase ^User-Agent$ .*(craftbot|download|extract|stripper|sucker|ninja|clshttp|webspider|leacher|collector|grabber|webpictures) HTTP_SAFE_BADBOT
SetEnvIfNoCase ^User-Agent$ .*(libwww-perl|aesop_com_spiderman) HTTP_SAFE_BADBOT
Deny from env=HTTP_SAFE_BADBOT
</ifModule>


9 – امن کردن دایرکتوری ها با غیر فعال کردن اسکریپت ها execution


# secure directory by disabling script execution
AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi
Options -Ex