.htaccess و کاربردهای آن
موارد کاربرد فایل .htaccess
1. Set TimeZone
تنظیم زمان سایت با کد زیر:
SetEnv TZ Asia/Tehran
2. 301 permanent Redirect
استفاده از 301 Permanent Redirects برای استفاده در موتور های جستجو
Redirect 301 http://www.domain.com/home http://www.domain.com/
3. اضافه کردن mime-type
حذف پرسش سرور پیرامون اینکه فایل را باز می نمایید و یا دانلود می کنید. براحتی فایل مورد نظر را download نمایید.
AddType application/octet-stream .pdf
AddType application/octet-stream .zip
AddType application/octet-stream .mov
4. حذف www
ارجاع تمام درخواست ها برای باز شدن سایت با www به URL سایت که به بهینه سازی برای موتورهای جستجوگر کمک می نماید.
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.domain.com [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]
5. Custom Error page
ایجاد نمایش خطاهای دلخواه و مسیردهی آن
ErrorDocument 401 /error/401.php
ErrorDocument 403 /error/403.php
ErrorDocument 404 /error/404.php
ErrorDocument 500 /error/500.php
6. Compress files
بهینه سازی سرعت load سایت با فشرده سازی فایل ها
# 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
Cache یکی دیگر از روش های مشهور بهینه سازی load سایت
FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$
Header set Cache-Control "max-age=2592000"
/FilesMatch
8. Disable caching for certain file type
شما می توانید cache برای نوع فایل دلخواهی غیرفعال نمایید.
# explicitly disable caching for scripts and other dynamic files
FilesMatch ".(pl|php|cgi|spl|scgi|fcgi)$
Header unset Cache-Control
/FilesMatch
امنیت
9. Hotlinking protection with .htaccess
برای جلوگیری از استفاده تصاویر سایت شما مصرف پهنای باند سایت شما از طریق کد زیر قادر به جلوگیری خواهید بود:
RewriteBase /
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?queness.com/.*$ [NC]
RewriteRule .(gif|jpg|swf|flv|png)$ /feed/ [R=302,L]
10. Prevent hacks
با استفاده از خطوط زیر می توانید از چند روش رایج هک شدن سایت خود جلوگیری نمایید.
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]
11. Block access to your .htaccess file
برای جلوگیری از دسترسی user ها به .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
12. Rename htaccess files
برای تغییر نام .htaccess جهت جلوگیری از تغییرات در آن
AccessFileName htacc.ess
13. Disable directory browsing
برای فعال یا غیرفعال کردن نمایش لیست زیر محتوای دایرکتوری ها
# disable directory browsing
Options All -Indexes
# enable directory browsing
Options All +Indexes
14. Change default Index page
برای تغییر صفحه index پیش فرض
DirectoryIndex business.html
15. Block unwanted visitor based on referring domain
جلوگیری از بازدید کننده از دامنه خاص
# 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
16. Blocking request based on User-Agent Header
ذخیره سازی پهنای باند با محدود سازی برای botها و spiderها
# 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
17. Secure directories by disabling execution of scripts
امن سازی دایرگتوری ها از اجرای اسکریپت های مخرب
# secure directory by disabling script execution
AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi
Options -ExecCGI
1 دیدگاه