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

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

۱ – تنظیم منطقه زمانی:

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

SetEnv TZ Australia/Melbourne

۲ – مطلب SEO و ۳۰۱ مسیر تغییر دائمی:

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

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

۳ – بر کنار کردن دیالوگ دانلود:

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

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

۴ –  حذف WWW

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

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

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

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

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

۶ – فشرده سازی فایل ها:

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

# 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

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

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

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

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

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

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

امنیت

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

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

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

۲ – جلوگیری از هک کردن وب سایت خود
اگر شما می خواهید سطح امنیت وب سایت خود را ارتقاط دهید از کد های زیر استفاده کنید این کدها بعضی از تکنیک های هک را با کشف کردن 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]

۳ – مسدود کردن دسترسی به فایل 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>

 

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

AccessFileName htacc.ess

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

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

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

DirectoryIndex business.html

 

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

# 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>

 

۸ – مسدود کردن درخواست بر اساس سربرگ 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>

 

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

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

 


ایمن سازی htaccess. وردپرس

مطمئنا بارها به فایل htaccess. برخورد کردید و یا شایدم مشکلاتی براتون ایجاد کرده. فایل htaccess. یک فایل معمولا خالی هستش میشه ارتباط مستقیمی با پیوندهای یکتا برقرار میکنه ولی گاهی در موارد خاصی داخلش کدهایی افزوده میشه.مثلا بعضی از این کدها مربوط به امنیت هم میشه که امروز قراره در موردش ۵ دقیقه ای با هم صحبت کنیم.

حفاظت از وردپرس با htaccess.

فایل htaccess. در عین سادگی یک فایل بسیار قدرتمندی است که عملکرد سرور رو تحت نظارت قرار میده و اثر گذاری اون بالاست و همچنین ارتباط مستقیمی با پیوندهای یکتا داره.این موضوع در بحث امنیت وردپرس بسیار اهمیت داره!

وجود قایل htaccess. و مواظبت از اون به منظور تقویت وبسایت وردپرسی بسیار مهمه. پس دقت کنید هر نوشته ای که داخل این فایل می نویسید به حالت تگ با Begin wordpress# شروع و با End wordpress خاتمه یابد.
مطمئنا با کلیک کردن بر روی تنظیمات، این فایل رو نمی بینید زیرا همیشه به حالت پنهان هستش. به عبارت دیگه، فایل htaccess. به صورت یک فایل غیر قابل رویت است.

فایل wp-config.php یکی از مهمترین فایل هاست که شامل اتصالات به پایگاه داده و تنظیمات آن، جداول پیشوندی، کلیدهای امنیتی و دیگر اطلاعات حساس است.برای حفاظت از این فایل کد زیر رو درون htaccess. وارد کنید:

<files wp-config.php>
order allow,deny
deny from all
</files>

البته میتونید فایل wp-config.php رو از محل نصب جا به جا کنید، با این حال بحث امنیت دیتابیس هم مطرحه.

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

order deny,allow
allow from 192.168.5.1
deny from all

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

order deny,allow
allow from 192.168.5.1
allow from 123.456.7.8
deny from all

فایل wp-login.php در ریشه ی وردپرس و در بخش نصب پیدا میشه که میتونه شناسه های آی پی مخصوصی رو محدود کنه! صفحه ی wp-login در نهایت برای هر کاربری که در مسیر wp-admin قرار گرفته باشه باز میشه،بنابراین اگر هر کس غیر از افراد قابل قبول باشند امکان باز شدن آن حتی با داشتن نام کاربری و رمز عبور امکان پذیر نیست!

برای ایجاد چنین مانعی در wp-login.php کد زیر رو وارد نمایید:

<Files wp-login.php>
order deny,allow
Deny from all
# allow access from my IP address
allow from 192.168.5.1
</Files>

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

order allow,deny
deny from 456.123.8.9
allow from all

شاخه ی wp-includes شامل تعداد زیادی فایل های مهم هست که برای اجرای وردپرس استفاده میشن.این پوشه احتیاجی به دیده شدن توسط افراد نداره. برای حفاظت از آن کد زیر رو داخل htaccess. جدیدی وارد کنید:

# Block the include-only files
<IfModule mod_rewrite.c>
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]
</IfModule>

برای جلوگیری از جستجوی افراد برای این محتواها کد زیر رو نیز در فایل htaccess. وارد کنید:

Options All -Indexes

حال برای حفاظت از خود فایل htaccess. که شامل این همه کد مهم و امنیتی شده کد زیر رو داخلش به کار ببرید:

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

پوشه ی wp-content نیز توسط فایل htaccess. قابل حفاظته! برای این کار درباره فایل htaccess. جداگانه ای ایجاد کنید و در پوشه ی wp-content بارگذاری کنید.سپس کد زیر رو درون آن اضافه کنید.

order deny,allow
deny from all
<files ~ ".(xml|css|jpe?g|png|gif|js)$">
allow from all

همونطور که ملاحظه می کنید تکنیک بالا هم برای حفاظت از wp-content به کار میره! اما به XML ، CSS،Java script  و تصاویر پرداخته نمیشه!

دقت کنید این کدها طوری نوشته شدند که به هیچ وجه به کدهای پی اچ پی موجود در قالب و افزونه ها ضرری وارد نمیکنند.

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

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