فایل htaccess یک فایل پیکربندی در وب سرورهای apache است. این فایل قادر به تغییراتی مانند تغییر مسیر دادن کاربر (redirect)، تعیین صفحه ی ۴۰۴، پسورد گذاشتن بر روی یه شاخه، بلاک کردن ip و ... می باشد.
فراموش نکنید که htaccess به بزرگی و کوچکی حروف حساس است.
1) محافظت از خود فایل htaccess :
order allow,deny
deny from all
< /files>
2) جلوگیری از لیست شدن فایل ها و فولدرها :
3) معرفی زبان پیشفرض (DefaultCharset) :
4) تعیین صفحات سفارشی برای صفحات خطا :
معرفی و تعیین صفحات خطا تاثیر خوبی برسئو سایت دارد.
ErrorDocument 403 /error/403.php
ErrorDocument 404 /error/404.php
ErrorDocument 500 /error/500.php
خطای ۴۰۱ : دسترسی به آدرس وارد شده غیر مجاز است.
خطای ۴۰۳: دسترسی به این آدرس ممنوع می باشد.
خطای ۴۰۴: آدرس مورد نظر یافت نشد.
خطای ۵۰۰: خطای داخلی سرور بوجود آمده است.
5) محدودیت دسترسی از طریق آی پی :
deny from 200.49.176.139
allow from all
allow from all همه ip ها بجز آی پی های مسدود شده دسترسی دارند.
allow from 188.50.38.143 دسترسی به ip خاص.
deny from 200.49.176.139 گرفتن دسترسی از ip خاص.
deny from all هیچ ip اجازه ورود نخواهد داشت.
6) مشخص نمودن فایل پیشفرض :
7) قفل کردن دامنه بدون www :
RewriteCond %{HTTP_HOST} !^yoursite\.com$ [NC]
RewriteRule ^(.*)$ http://yoursite.com/$1 [R=301,L]
8) قفل کردن دامنه فقط با www :
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
9) مخفی کردن فرمت ها/شناساندن فرمتهای جدید (add mime type) :
Addtype به ما می گوید که میخواهیم یک فرمت جدید بشناسانیم بعد نوع آن فایل های خاص با فرمت دلخواه خود میگوییم مثلا image/png یا text/css بعد میگوییم که چه فرمتی رو از این به بعد به عنوان نوعی که گفته ایم بشناس.
اما فرض کنید میخواهید از shtml/ssl در سایتتون استفاده کنید و نیاز به شناساندن این فرمتها به آپاچی دارین :
AddHandler server-parsed .shtml
Options Indexes FollowSymLinks Includes
10) مجبورسازی برای دانلود فایل های چندرسانه ای :
11) محدود کردن نوع فایلهای قابل اجرا و نمایش :
RewriteEngine On
rewritecond %{REQUEST_FILENAME} !^(.+).css$
rewritecond %{REQUEST_FILENAME} !^(.+).js$
rewritecond %{REQUEST_FILENAME} !file.php$
RewriteRule ^(.+)$ /deny/ [nc]
با کد بالا کاربر فقط اجازه باز کردن فایل هایی با پسوند css , js و php رو داره و در صورت درخواست سایر پسوند ها ریدایرکت میشه به پوشه deny.
12) ایجاد محدودیت در آپلود فایل :
13) ایجاد محدودیت در حجم پست ارسالی :
14) نمایش پیغام requast time در بازه زمانی مشخص:
15) حداکثر زمان دریافت اطلاعات POST و GET :
16) جلوگیری از سرقت پهنای باند و فایلها و عکسها :
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://([ -a-z0-9] .)?domain.com [NC]
RewriteRule .(gif|jpe?g|png)$ - [F,NC,L]
17) نمایش تمام پسوند های فایل ها به عنوان php :
18) تغییر پسوند فایل آپلود شده :
این کد بیشتر در آپلود سنترها کاربرد دارد. برای مثال کد زیر هر فایلی که با پیوند php آپلود شود را به پسوند nophp تغییر می دهد.
RewriteCond %{REQUEST_METHOD} ^PUT$ [OR]
RewriteCond %{REQUEST_METHOD} ^MOVE$
RewriteRule ^/files/(.*)\.php /files/$1.nophp
19) قفل کردن سایت روی یک آدرس خاص مثلا یک ساب دومین :
RewriteCond %{HTTP_HOST} ^site.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.site.com$
RewriteRule ^/?$ "http://test.site.com" [R=301,L]
RewriteCond %{HTTP_HOST} !^test\.site\.com$ [NC]
RewriteRule ^(.*) http://test.site.com/$1 [QSA,L,R=301]
20) ریدایرکت/Redirect کردن :
online htaccess editor
http://www.htaccesseditor.com/en.shtml
http://www.htaccessredirect.net
http://htaccessbuilder.com
http://cooletips.de/htaccess
http://www.generateit.net/mod-rewrite/index.php