1. Ch ng hotlink:
Hotlink nghĩa m t t p tin c a ta đ c đ c tr c ti p t trang khác. Thí d : b n ượ ế
m t nh JPEG r t đ p 200KB máy ch c a b n, nh ng ng i khác l i dùng th ư ườ
<IMG> đ hi n th hình nh này trang web c a h . Đây là hành vi ăn c p băng thông
c a b n, vì m i ng i xem không ai biêt r ng cái nh đó c a b n, và b n đã m t băng ườ
thông m t cách ích.
R t may, h u h t các trình duy t khi yêu c u m t t p tin đ u có g i kèm m t thông s ế
cho bi t đ c yêu c u t trang web nào. V y b n ch c n đ n gi n m t câu ki mế ượ ơ
tra là xong.
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?yoursite\.com.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://your-ip.*$ [NC]
RewriteRule .*\.(jpg|gif)$ http://www.yoursite.com/hotlink.jpg [NC]
Trong đó hotlink.jpg là nh s thay th các nh kia (b n có th ghi m t câu thông báo
ch ng h n vào t m nh đó). Và t t c nh đ c link đ n t trang khác s không hi n ượ ế
ra, mà đ c thay b ng nh hotlink.jpg. T t nhiên, b n có th s a l i đ ngăn các t pượ
tin khác ngoài GIF và JPG.
Đôi khi, b n mu n ch ng hotlink trong th m c gallery thôi ch ng h n, thì dòng cu i ư
c n s a l i thành:
RewriteRule .*gallery.*\.(jpg|gif)$
http://www.yoursite.com/hotlink.jpg [NC]
2. Trang báo l i:
Bình th ng, khi g p l i, b n s nh n đ c m t thông báo chán ng n t Apache. Tuyườ ượ
nhiên, v i .htaccess b n th tuỳ bi n trang thông báo này. Thí d sau t o thông báo ế
l i tuỳ bi n cho các l i 403 (c m truy c p) 404 (trang không t n t i), trong đó n i ế
dung file error_forbidden.htm error_notfound.htm do b n quy t đ nh, d nh đ a ế ư ư
ra m t form tìm ki m n i dung trong trang, c u hình l i đúng đ i s trên trang vv...: ế
ErrorDocument 403 /error_forbidden.htm
ErrorDocument 404 /error_notfound.htm
3. Ch n trang web theo th i đi m:
Đo n mã sau đây s hi n th trang sleep.htm n u ai đó truy c p vào trang c a b n trong ế
kho ng 1 đ n 4 gi sáng: ế
RewriteEngine on
RewriteCond %{TIME_HOUR}%{TIME_MIN} >0100
RewriteCond %{TIME_HOUR}%{TIME_MIN} <0400
RewriteRule ^.*$ http://www.yourdomain.com/sleep.htm
4. Nh c nh b t cookie:
B n b t bu c ng i dùng ph i ch p nh n cookie, và mu n ki m tra cookie đã đ c ườ ượ
thi t l p hay ch a. R t đ n gi n, đo n sau s thay t t c các nh m t m t t m nhế ư ơ
kêu ng i dùng b t cookie (cookies/enable.gif là hình báo nh c nh b t cookie).ườ
RewriteEngine on
RewriteCond %{HTTP_COOKIE} !^.*cookies=true.*$
RewriteRule .*[Jj][Pp][Gg]$|.*[Gg][Ii][Ff]$ /cookies/enable.gif
5. Ch n ip c a ai đó:
Đôi khi b n mu n gi i h n m t trang nào đó ch cho phép 1 vài ng i truy c p (nh ườ ư
khu v c Admin), ho c cho t t c tr m t vài ng i không đ c phép truy c p vào ườ ượ
(ngăn nh ng ip đang flood). C hai tr ng h p này có th gi i quy t nh nhàng nh ườ ế
.htaccess
5.1. Ch cho phép m t s ip truy c p
Đ u tiên ta c m t t c , sau đó cho phép m t s :
order deny,allow
deny from all
allow from 127.0.0.1
allow from 192.168.0.1
Ch cho phép ip 127.0.0.1 và 192.168.0.1 truy c p vào trang web (n u b n đ t .htaccess ế
th m c g c). Đ c m th m c admin, b n đ t nó vào th m c admin. ư ư ư
5.2. C m m t s ip truy c p
order allow,deny
allow from all
deny from 203.113.135.6
deny from 203.162.*
C m ip 203.113.135.6 và t t c các ip b t đ u b ng 203.162
6. Thay th trang index:ế
Thông th ng khi truy nh p vào m t trang web, Apache s tìm t p tin index.htm(l)ườ
ho c default.htm(l) tr k t qu v cho trình duy t, b n có th dùng .htaccess thay đ i ế
m c đ nh này.
DirectoryIndex index.php emyeu.htm index.html index.htm
V i dòng l nh này thì t t c các t p tin đ c li t kê s đ c tìm theo th t (l n l t ượ ượ ượ
index.php, emyeu.htm, r i đ n index.html, index.htm) khi yêu c u t i th m c ế ư
hi n hành, trang nào đ c tìm th y đ u tiên s thành trang index c a th m c. ượ ư
Trong tr ng h p m t th m c nào đó không t p tin index, Apache s hi n th m tườ ư
danh sách li t nh ng t p tin trong th m c đó. Tuy nhiên n u đây nh ng tài ư ế
li u nh y c m, b n không mu n cho li t n i dung thì th làm b ng nhi u cách
sau:
Cách đ u tiên đ t vào đó m t t p tin index.html m c đ nh
Cách khác là không cho hi n n i dung th m c b ng .htaccess ư
Options -Indexes
Cách cu i cùng là đ t index m c đ nh n u index.html không tìm th y: ế
DirectoryIndex index.php index.html index.htm
/noindex.html
Trong tr ng h p này, b n t o t p tin /noindex.html, khi đó n u Apache không tìmườ ế
th y index.*, s đ c noindex.html th m c g c. Nghĩa b n luôn t p tin ư
index.
Nh ng cách s d ng URL rewrite b ng .htaccess h u ích
Post by : boing - Post time: 28/12/2009 - Edit time : 06/01/2010
View : 3102 - Comment : 0
Tags: htaccess url rewrite apache server
1) Rewriting product.php?id=12 thành product-12.html:
Đây là m t chuy n h ng đ n gi n, có ph n m r ng .php đ c n đi trên address bar ướ ơ ượ
và ph n query đ ng (có ch a "?") đ c chuy n thành query t nh. ượ
RewriteEngine on
RewriteRule ^product([0-9]+)\.html $.Product.php?I =$1
2) Rewriting product.php?id=12 thành product/ipod-nano/12.html:
Các chuyên gia SEO luôn đ ngh b n mô t các t khóa trong URL, cách làm d i đây ướ
giúp b n có th đ a nh ng t khóa vào URL trên website. ư
RewriteEngine on
RewriteRule ^product/([a-zA-Z0-9_-]+)/([0-9]+)\.html$
product.php?id=$2
3) Redirecting non www URL to www URL:
N u b n vào trình duy t blog.kai.vn, trình duy t s chuy n b n sang trangế
www.blog.kai.vn, B n c n làm v y v i trang web c a mình thì có th áp c ng code sau
vào file htaccess c a mình nh sau. ư (Chuy n h ng 301) ướ
RewriteEngine On
RewriteCond %{HTTP_HOST} ^optimaxwebsolutions\.com$
RewriteRule (.*) http://www.optimaxwebsolutions.com/$1
[R=301,L]
4) Rewriting yoursite.com/user.php?username=xyz thành yoursite.com/xyz:
B n lên trình duy t facebook.com/boingonline s xem đ c thông tin c a tài kho n ượ
mang tên boingonline. N u b n mu n khi vào yoursite.com/accname s chuy nế
thành yoursite.com/user.php?im=accname thì thêm code sau vào file .htaccess
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ user.php?username=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ user.php?username=$1
5) Chuy n h ng tên mi n vào các sub-folder bên trong: ướ
Gi s b n nâng c p l i trang web c a mình đ a t t c các file vào m t th m c ư ư
"new" bên trong, vi c di chuy n các file cũ vào bên trong g p r t nhi u v n đ . B n
th thêm code sau vào file htaccess đ t th m c g c (root) đ khi truy c p vào ư
test.com s đ c đ a vào test.com/new ượ ư
RewriteEngine On
RewriteCond %{HTTP_HOST} ^test\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.test\.com$
RewriteCond %{REQUEST_URI} !^/new/
RewriteRule (.*) /new/$1