Cách sử dụng file .htaccess

  • Saturday 29/02/2020

File .htaccess (hypertext access) của apache là một công cụ cực kỳ hữu dụng. File .htaccess thường được tìm thấy trong thư mục root của website, bạn có thể dễ dàng sửa chữa nó bằng Notepad. Bạn nên sao lưu lại file .htaccess của mình trước khi thử nghiệm các cách dưới đây.

1. Ngăn chặn lấy hình từ Web khác (Hotlink Protection)

Nhiều người copy ảnh từ server của bạn và đưa lên trang web của họ. Thêm vào .htaccess đoạn mã dưới đây sẽ giúp bạn ngăn chặn ảnh hiển thị trên website khác. Có 2 cách :

a) Block hoàn toàn lấy link hình:

Options +FollowSymlinks

RewriteEngine On

RewriteCond %{HTTP_REFERER} !^$

RewriteCond %{HTTP_REFERER} !^http://(www.)?mydomain.com/ [NC]

RewriteRule .*.(gif|jpg|png|jpeg)$ – [NC,F,L]

b) Cấm link hình và cho redirect sang image hoặc html thông báo khác:

Options +FollowSymlinks

RewriteEngine On

RewriteCond %{HTTP_REFERER} !^$

RewriteCond %{HTTP_REFERER} !^http://(www.)?mydomain.com/ [NC]

RewriteRule .*.(gif|jpg|png|jpeg)$ http://mydomain.com/img/stop_stealing_bandwidth.gif[NC]

2. 301 Redirect

Nếu bạn chuyển domain, hoặc chỉ muốn chuyển một trang cũ về một trang mới và không muốn lo lắng về các kết quả search từ google, sử dụng đoạn mã sau

Redirect 301 /d/file.html http://www.mydomain.com/r/file.html

3. Chuyển hướng từ tên miền cũ sang tên mới

Sử dụng đoạn mã dưới đây bạn có thể chuyển tất cả các link từ tên miền cũ sang tên miền mới:

#Chuyển hướng từ tên miền cũ sang tên mới

RewriteEngine On

RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R=301,L]

4. Tạo trang báo lỗi riêng

Bạn không muốn dùng các trang báo lỗi có sẵn của host, bạn có thể tạo các trang báo lỗi riêng và cấu hình vào file htaccess như sau:

ErrorDocument 401 /error/401.php

ErrorDocument 403 /error/403.php

ErrorDocument 404 /error/404.php

ErrorDocument 500 /error/500.php

5. Cấm IP truy cập

Nếu có 1 IP thường xuyên spam website của bạn, bạn có thể cấm IP đó như dòng 2, hoặc cấm 1 dải IP như dòng 3:

allow from all

deny from 123.30.1.2

deny from 123.40.2

6. Đặt email mặc định cho server admin

Sử dụng đoạn mã sau

ServerSignature EMail

SetEnv SERVER_ADMIN default@mydomain.com

7. Bảo vệ file

Đoạn mã dưới đây sẽ từ chối khi người dùng truy cập vào bất kỳ file nào và gửi về lỗi 403.Vd khi bảo vệ file .htaccess

#Bảo vệ .htaccess File

<Files .htaccess>

order allow,deny

deny from all

</Files>

8. Đặt mã cho thư mục và file

Bạn có thể đặt mã & quyền truy cập vào thư mục/file như sau:

# Đặt mã cho thư mục

AuthType basic

AuthName “Thư mục này đã được bảo vệ”

AuthUserFile /home/path/.htpasswd

AuthGroupFile /dev/null

Require valid-user

# Đặt mã cho file

AuthType Basic

AuthName “Prompt”

AuthUserFile /home/path/.htpasswd

Require valid-user

9. Đặt trang mặc định

Bạn có thể đặt trang web mặc định cho thư mục nào đó. Ví dụ đặt file about.html thay cho file index.html:

#Đặt trang mặc định (index)

DirectoryIndex about.html

10. Nén file bằng cách bật Gzip (Deflate)

Bằng cách bật Gzip bạn có thể nén file từ server giúp cho việc tải trang nhanh hơn

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript

BrowserMatch ^Mozilla/4 gzip-only-text/html

BrowserMatch ^Mozilla/4.0[678] no-gzip

BrowserMatch bMSIE !no-gzip !gzip-only-text/html

11. Bỏ “category” ở URL

Để chuyển url từ: http://vannyneo.com/category/tong-hop về -> http://vannyneo.com/tong-hop, bạn chỉ cần thêm vào file .htaccess đoạn mã sau

RewriteRule ^category/(.+)$ http://www.vannyneo.com/$1 [R=301,L]

12. Bỏ phần đuôi file ở URL

Bạn mới lập trình php và không muốn hiện .php ở url, hãy thêm đoạn code sau:

RewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L]

13. Thêm / vào cuối URL

Một vài bộ máy tìm kiếm (như Yahoo)tự động bỏ dấu / ở cuối url. Website của bạn cũng có thể được truy cập có hoặc không có dấu / ở sau cùng url. Điều này không tốt với các bộ máy tìm kiếm (sẽ bị coi là duplicated content). Thêm đoạn mã dưới đây vào .htaccess để giải quyết vấn đề đó

#Thêm / vào cuối URL

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_URI} !#

RewriteCond %{REQUEST_URI} !(.*)/$

RewriteRule ^(.*)$ http://mydomain.com/$1/ [L,R=301]

14. Bỏ www ở URL

Nếu bạn muốn chuyển mọi truy cập từ http://www.example.com thành http://example.com, thêm đoạn mã sau vào file .htaccess:

RewriteEngine On

RewriteBase /

RewriteCond %{HTTP_HOST} !^mydomain.com$ [NC]

RewriteRule ^(.*)$ http://mydomain.com/$1 [L,R=301]

15. Thêm www vào URL

Tất nhiên nếu bạn muốn ngược lại “14″ bạn có thể dùng đoạn mã sau

RewriteEngine On

RewriteBase /

RewriteCond %{HTTP_HOST} !^www.mydomain.com$ [NC]

RewriteRule ^(.*)$ http://www.mydomain.com/$1 [L,R=301]

16. Không cho “browse” thư mục

Để ngăn chặn truy cập vào tên file trong thư mục nào đó (ví dụ thư mục plugins của wordpress), thêm đoạn mã sau vào file .htacess:

Options All -Indexes

ở file .htaccess bạn thêm vào:

order allow,deny

deny from [ip cần cấm]

deny from [1 ip khác]

deny from [1 vài ip khác]

allow from all

Vd chỉ allow vài IP :

order deny,allow

deny from all

allow from 58.186.101.237

allow from 58.186.101.236

17. Chặn referrer từ Web khác forward sang hoặc các Backlink không mong muốn:

Khi từ khóa của bạn đạt được top trên đối thủ mà đối thủ thì không tài nào vượt qua bạn được, cách giải quyết của họ đó chính là sẽ chơi xấu site của bạn, họ sẽ trỏ những link bẩn ví dụ như : Link từ site bị Google phạt, Link từ anchor text có tiêu đề nhạy cảm như liên quan tới xxx, cờ bạc, link spam, v.v.

Vd :

RewriteEngine On

RewriteCond %{HTTP_REFERER} otherdomain\.com [NC]

RewriteRule .* – [F]

RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?otherdomain.com.*$ [NC]

RewriteRule .* – [F,L]

Hoặc :

SetEnvIfNoCase Referer “.*(cụm từ chứa trong domain).*” ban

SetEnvIfNoCase Referer “.*(blogspot).*” ban

SetEnvIfNoCase Referer “.*(azfreeapps).*” ban

<Limit GET POST>

order allow,deny

deny from env=ban

allow from all

</Limit>

Rate this post