بعضی از کاربران هاست لینوکس ممکن است از قدرت های 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
This is a really good read for me, thank you!