Một số thủ thuật với .htaccess

PVS

Super Moderator
Thành viên BQT
Tham gia
28/02/2015
Bài viết
16,829
Được Like
12,687
Bằng việc khai thác tập tin cấu hình .htaccess trên Apache server, bạn có thể thực hiện được rất nhiều việc khác nhau như cấu hình lại file error, viết lại url, … dưới đây là một số thủ thuật nữa mà bạn có thể sử dụng với .htaccess.

xenforo.jpg

1. Chống hotlink:
Hotlink nghĩa là một tập tin của ta được đọc trực tiếp từ trang khác. Thí dụ: bạn có 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ẻ để 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 vô í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 nó đượ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.
Mã:
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:
Mã:
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ắt từ Apache. Tuy nhiên, với .htaccess bạn có 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) và 404 (trang không tồn tại), trong đó nội dung file error_forbidden.htm và error_notfound.htm do bạn quyết định, ví 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…:
Mã:
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:
Mã:
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 bằng 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).
Mã:
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ố:
Mã:
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
Mã:
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.
Mã:
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 là index.php, emyeu.htm, rồi đến index.html, index.htm) 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.
Trong trường hợp một thư mục nào đó không có tập tin index, 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 cho liệt kê nội dung thì có thể làm bằng nhiều cách sau:
Cách đầu tiên là đặ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
Mã:
Options -Indexes

Cách cuối cùng là đặt index mặc định nếu index.html không tìm thấy:
Mã:
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.*, nó sẽ đọc noindex.html ở thư mục gốc. Nghĩa là bạn luôn có tập tin index.

Chúc các bạn thành công.


Nguồn: forumit24h.net​
 

Hướng dẫn sử dụng

XenForo 1 XenForo 2
Translate by PVS

Dịch vụ XenForo của VNXF

Mobile/Zalo: 0906081284

Telegram: anhanhxf

Chỉ nhận web nội dung lành mạnh

Nhà Tài Trợ

Mút Xốp Không Gian
Mút Sofa Không Gian
Top Bottom