Người ta thiết đặt một số lệnh trong tập tin .htaccess để bảo vệ file,thư mục và chống ddos xflash.nên vừa rồi tìm tài liệu về để tìm hiểu thêm về nó ,gặp bài này của bác vnlinux bên vnhack (ko biết có phải là bác LINUX bên mình ko nhỉ? :22: ).Thấy hay nên lôi về đây cho mọi người tìm hiểu,nhất là các admin mới tập tành làm forum cho lớp ,cho nhóm… mà chưa hiểu hết về .htaccess.Còn các bác pro thì vào bổ sung giùm kid nhé .bài viết này kid ko chỉnh sửa chổ nào cả

Bạn đã từng nghe về tập tin .htaccess trên các máy chủ hệ Unix (FreeBSD, Linux, Solaris, True64…)? Bạn biết rằng tập tin này có thể điều khiển được khá nhiều thứ, thậm chí thay đổi được cả thiết lập mặc định của máy chủ Apache http://apache.org/. Thế nhưng bạn đã tận dụng được bao nhiêu lệnh trong tập tin này để làm cho website của mình mạnh mẽ, an toàn hơn?

Trong bài viết tổng hợp này, tác giả sẽ cùng bạn nghiên cứu, ứng dụng một số lệnh thông dụng nhất để thực hiện các tác vụ bảo vệ, điều khiển website theo ý bạn muốn. Nào, xin mời bạn!

Tạo trang báo lỗi mang màu sắc cá nhân

Trong quá trình làm việc với client, nếu có lỗi xảy ra (ví dụ như không tìm thấy tập tin) thì Apache sẽ báo lỗi bằng một trang có sẵn hiển thị mã số của lỗi đó, rất không đẹp và khó hiểu.

Với .haccess thì bạn có thể tự tạo các trang báo lỗi hay hơn. Để làm được điều này thì trong tập tin .htaccess bạn thêm dòng sau:

ErrorDocument mã số lỗi /trangloi.html

Trong đó mã số lỗi là mã số của lỗi phát sinh, sau đây là những lỗi hay gặp:

- 401 – Authorization Required (cần password để truy nhập)
- 400 – Bad request (Lỗi do yêu cầu)
- 403 – Forbidden (không được vào)
- 500 – Internal Server Error (lỗi server)
- 404 – Wrong page (lỗi trang, không tìm thấy…)

còn trangloi.html là trang web mà bạn muốn hiển thị khi lỗi phát sinh, có thể đưa vào tập tin này nội dung hay đồ hoạ gì tùy bạn, chẳng hạn liên kết trở về trang chính của trang web. Ví dụ: ErrorDocument 404/trangloi.html hoặc: ErrorDocument500/loi/500.html

Bây giờ bạn hãy tải (upload) 2 tập tin .htaccess và trangloi.html lên hosting của mình.

Chống ăn cắp băng thông (bandwidth)

Thông thường những dịch vụ lưu trữ web chỉ cung cấp cho bạn một lượng dữ liệu luân chuyển (data transfer) nhất định hàng tháng và khi bạn sử dụng hết lượng dữ liệu này, website của bạn sẽ tự động bị đóng cửa. Bạn sẽ phải trả thêm tiền cho lượng băng thông vượt quá hoặc phải buộc lòng chờ đến tháng sau.

Nếu hình ảnh, dữ liệu, … của bạn bị các website khác “ăn trộm” (bằng các thủ thuật đơn giản) làm cho lượng dữ liệu luân chuyển của bạn tăng lên, thì có nghĩa là bạn sẽ phải trả tiền cho cái mà bạn không sử dụng. Sử dụng tập tin .htaccess là một giải pháp hoàn hảo, để ngăn chặn việc sử dụng hình ảnh trái phép trên website của bạn. Bạn chỉ việc đưa vào tập tin .htaccess nội dung sau :

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?trangweb\.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ – [F]

Ở đoạn mã trên tôi sử dụng module Rewrite của máy chủ Apache, bạn chỉ việc thay đổi trangweb.com thành địa chỉ website của mình.

Có thể sử dụng một hình ảnh nào đó cảnh cáo những kẻ “ăn trộm” băng thông, bạn dùng dòng lệnh sau:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?trangweb\.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ http://www.trangweb.com/diehotlinker.jpg [R,L]

Không cho hiện danh sách tập tin trong thư mục

Trong trường hợp một thư mục nào đó không có tập tin index hoặc default, Apache sẽ hiển thị một danh sách liệt kê những tập tin có trong thư mục đó. Tuy nhiên nếu đây là những tài liệu nhạy cảm, bạn không muốn người khác thấy, hãy thêm lệnh sau vào tập tin .htaccess

Options –Indexes

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 hoặc default.htm 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 index .php3 messagebrd.pl 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ự khi có 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.

Cấm/hạn chế IP truy nhập

Một số người muốn làm ngập (flood) trang web của bạn, việc cần làm là ngăn cấm những IP của những người này truy nhập vào trang web, bạn thêm đoạn mã sau vào .htaccess: deny from 203.262.110.20; cho phép IP truy nhập: allow from 203.262.110.20.

Nếu bạn chỉ viết IP dưới dạng: 203.262.110 thì sẽ cấm tất cả IP trong dải từ 203.262.110.1 đến 203.262.110.254.

Sử dụng dòng lệnh sau: Deny from all sẽ cấm tất cả mọi truy nhập đến các trang web trong thư mục, tuy nhiên các tập tin trong đó vẫn có thể được sử dụng từ bên ngoài thông qua các lệnh dạng require hay include (trong lập trình PHP), có thể xem thêm mã nguồn của PHPBB forum,IBF… để hiểu rõ hơn.

Tự động chuyển đến địa chỉ mới (Redirection)

Bạn chuyển trang web của mình đến địa chỉ mới nhưng không phải ai cũng biết điều này, redirect truy nhập từ xa một cách đơn giản bằng lệnh sau:

Redirect/olddirectory http://www.trangwebmoi.com/thumucmoi ;

Tuỳ biến đuôi tập tin

Thông thường, tuỳ thuộc vào ngôn ngữ lập trình web mà bạn sử dụng tập tin sẽ có phần mở rộng khác nhau như: html, htm, asp, aspx, php, cgi, …Tuy nhiên nếu sử dụng .htaccess bạn có thể tác động vào máy chủ Apache, Apache sẽ gọi đến tập tin của bạn và trả về cho trình duyệt web của người dùng với phần mở rộng do bạn quy định trong .htaccess. Bạn sử dụng đoạn lệnh sau trong tập tin .htaccess:

RewriteEngine on
RewriteRule (.*)\.dll$ $1.html

Html là phần mở rộng thực sự của những tập tin trên website, dll là phần mở rộng do bạn lựa chọn. Lưu ý trong liên kết trên trang web, bạn phải gọi đúng đường dẫn đến tập tin với phần mở rộng mới (ở trên là dll), ví dụ http://www.trangweb.com/in dex.dll
Lưu ý khi sử dụng tập tin .htaccess:
- Chỉ áp dụng trên máy chủ Apache đã bật chế độ .htaccess, nếu chưa bạn hãy thử liên hệ với nhà cung cấp dich vụ hosting.
- Để tạo ra tập tin này bạn có thể sử dụng ngay chương trình Notepad của Windows: chọn chế độ save as với tên .htaccess, nhưng khi lưu nhớ bỏ đuôi txt.
-.htaccess chỉ có tác dụng đối với những tập tin ngang hàng (trong cùng thư mục với nó) hoặc thư mục con. Với thư mục, nó chỉ có tác dụng trong thư mục chứa nó và thư mục con, còn vô tác dụng với thư mục mẹ (parent directory).
- Bạn có thể dùng một số chương trình FTP (Leaf FTP, WS FTP, Cute FTP) để tải tập tin .htaccess lên hosting của mình với chế độ ASCII, nếu nó không hoạt động bạn thử CHMOD với giá trị 644.

(TG:vnlinux -vnhack.net)

///////////////////////////////////////

File .htaccess hầu hết được dùng để đặt mật khẩu cho web site của bạn. ví dụ. nếu tôi muốn dùng mật khẩu để bảo vệ site http://domain.com/secrect/ Tôi có thể tạo một file gọi là .htaccess trong folder secret nằm trên server đó. Ngoài ra file .htaccess còn dùng để từ chối việc liệt kê file trong folder. Điều này rất tiện khi bạn không có file index ví dụ. images/ cgi-bin/ db/ .

Có rất nhiều tùy chọn cho bạn đặt vào file .htaccess. Ở đây tôi chỉ đề cập đến ‘AuthConfig’ và ‘Limit’.

QUAN TRỌNG: File .htaccess hoạt động trong toàn bộ cây thư mục. Ví dụ. nếu bạn có một file .htaccess trong /www/.htaccess thì nó sẽ có tác dụng đến /www/public/, /www/pictures, v.v.. Nếu bạn chỉ muốn không cho liệt kê thư mục trong /www/pictures thì đặt file .htaccess vào /www/pictures chứ KHÔNG phải vào /www !
Có một tùy chọn khác với thẻ <Directory> nhưng tôi sẽ không đề cập trong bài này . Bạn có thể dùng google nếu muốn tìm hiểu kỹ hơn.

Đặt mật khẩu bảo vệ:
==============
Việc đầu tiên là phải tạo một file gọi là .htpasswd để chứa username và mật khẩu (đừng lo lắng gì, chúng đã được mã hóa). Có nhiều cách tạo mật khẩu mã hóa. Cách dễ nhất là vào http://www.euronet.nl/~arnow/htpasswd/ tạo một cái. Sau đó bạn copy/paste dòng kết quả vào file .htpasswd. Tiếp theo ta tạo file .htaccess. Ví dụ như sau:

Code:

 AuthUserFile /home/leon/secret/.htpasswd
 AuthGroupFile /dev/null
 AuthName "My .htaccess secured web page!"
 AuthType Basic
 require valid-user

Dòng đầu tiên là nơi bạn chứa file .htpasswd. Những dòng còn lại chắc bạn cũng đã hiểu!

Từ chối ip:
Nếu bạn muốn cấm (block) vài ip hay isp thì đặt một trong những dòng sau vào file .htaccess:

Code:

 order allow,deny
 deny from 123.45.67.89
 deny from 45.67.89.
 allow from all

Nó sẽ cấm 123.45.67.89 và mọi ip bắt đầu với 45.67.89.

Bên cạnh đó bạn cũng có thể làm như sau:

Code:

 order deny,allow
 deny from all
 allow from 123.45.67.8

Nó sẽ cấm tất cả IP ngoại trừ 123.45.67.8

Ngoài ra bạn có thể tham khảo thêm ở:
http://httpd.apache.org/docs/howto/htaccess.html
http://wsabstract.com/howto/htaccess.shtml
http://www.he.net/faq/tutorials/htaccess/demo.html
http://www.freewebmasterhelp.com/tutorials/htaccess/
http://baremetal.com/gadgets/htaccess/

>>>>>>>>>>>>>>>>>>>>

Tạo đường dẫn ảo

Tạo file .htaccess

Code:

RewriteEngine on
 RewriteCond %{REQUEST_FILENAME} -d [OR]
 RewriteCond %{REQUEST_FILENAME} -s
 RewriteRule ^.*$ - [L]
 RewriteRule ^(.*)$ rewrite.php [L]

Tạo file rewrite.php

Code:

if(!$_SERVER['QUERY_STRING']){
 $url=strip_tags($_SERVER['REQUEST_URI']);
 $url_arr=explode("/",$url);
 array_shift($url_arr); // bo cell đầu null

 $page="";$query="";
 /*Lay phan duong dan va ten file include*/
 for($i=0;$i<count($url_arr)-1;$i++)
  $page.=$url_arr[$i]."/";
 if($page=="") $page="home.php";
 else
  $page=substr($page,0,strlen($page)-1).".php";

 if(!file_exists($page)){
  echo "Invalid filename...";exit;
 }

 /*Lay phan querystring dang var1_var2_var3.vec*/
 $query=substr($url_arr[$i],0,strlen($url_arr[$i])-4); // cat bo chu .htm cuối cùng của chuỗi URL
 $var_arr=explode("_",$query,10);
 $var1=@$var_arr[0];
 $var2=@$var_arr[1];
 $var3=@$var_arr[2];
                // ban gan cac giá trị query string vào từng biến

 include($page);
 }
 else{
 header("Location:".$_SERVER['REQUEST_URI']);
 }
 ?>

- Chuỗi URL đưa vào có dạng: http://yourdomain.com/thư/mục/chứa/file/tên file.php/var1_var2_var3.htm
- Nếu không sử dụng các var1, var2,… thì bạn cho đại một tên nào đó ví dụ như show.htm chẳng hạn.

ví dụ: bình thường nếu truy cập:
http://domain.net/products/list.php?cat=adgf&sort=fall

thì rewrite lại như sau:
http://domain.net/product/list/adgf_fall.htm

VN:F [1.9.20_1166]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.20_1166]
Rating: 0 (from 0 votes)
Bài viết này có ích hãy chia sẻ cho bạn bè:
Bài viết được cám ơn 0 lần. Bấm đây để Cám ơn ?

Random Posts

Các bài liên quan:

  1. Hướng dẫn cài đặt và cấu hình sh404SEF để tạo Link thân thiện cho Joomla