Một số thủ thuật Htaccess Rewrite url, redirect

Hai việc cần phải làm ngay bây giờ đó là:
Công việc 1: Mở chức năng mod_rewrite của wampserver lên: (xem hình bên dưới)
Hướng dẫn Rewrite URL sử dụng .htaccess
Bạn mở file httph.conf tìm đến dòng : #LoadModule rewrite_module modules/mod_rewrite.so, bỏ dấu # đi
(sẽ trở thành : LoadModule rewrite_module modules/mod_rewrite.so)
Công việc 2: tạo 1 file có tên là .htaccess trong thư mục gốc của bạn
Bây giờ đến phần hấp dẫn đây, tùy theo nhu cầu viết lại đường dẫn, mà nội dung của file .htaccess sẽ có nội dung lần lượt như sau:
1. product.php?id=12 —> product-12.html
Đây là một ví dụ cực kỳ cơ bản của rewrite url, thường dùng để che dấu đuôi PHP:
RewriteEngine on
RewriteRule ^product-([0-9]+).html$ product.php?id=$1
2. product.php?id=12 —> product/ipod-nano/12.html
Một SEOer chuyên nghiệp luôn biết khéo léo hiển thị từ khoá chính trên URL. Như trong ví dụ sau, URL hiển thị tên của sản phẩm chính:
RewriteEngine on
RewriteRule ^product/([a-zA-Z0-9_-]+)/([0-9]+).html$ product.php?id=$2
3. Non www URL —> www URL
Nếu bạn muốn khi visitor gõ vào trình duyệt laptrinhwebphp.com thì được chuyển thẳng vào www.laptrinhwebphp.com thì cấu hình như sau:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^laptrinhwebphp.com$
RewriteRule (.*) http://www.laptrinhwebphp.com/$1 [R=301,L]
4) laptrinhwebphp.com/user.php?username=xyz —> laptrinhwebphp.com/xyz
Nếu website của bạn có một lượng lớn thành viên (như mạng xã hội, diễn đàn), đây là một cách rất hay để rút gọn liên kết cho thành viên dễ nhớ
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ user.php?username=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ user.php?username=$1
5) Chuyển domain vào cấp thư mục:
Trong quá trình phát triển website, luôn luôn có sự thay đổi (về mã nguồn, cơ sở dữ liệu, cấu trúc site,…). Ví dụ laptrinhwebphp.com trước giờ vẫn chạy ở thư mục gốc (root), giả sử vì một lý do nào đó, Việt Coding cần dùng root cho việc khác và muốn chuyển webblog hiện tại vào thư mục /blog/ thì sao ?
RewriteEngine On
RewriteCond %{HTTP_HOST} ^laptrinhwebphp.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.laptrinhwebphp.com$
RewriteCond %{REQUEST_URI} !^/blog/
RewriteRule (.*) /blog/$1
Thế là xong ! Từ nay mọi truy vấn đến laptrinhwebphp.com hoặc www.laptrinhwebphp.com đều được redirect vào laptrinhwebphp.com/blog
6) 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 đó ErrorDocument là Câu lệnh của tệp tin ( ko được thay đổi) mã số lỗi là một số tự nhiê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
Các mã số lỗi hay gặp là :
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…)
VD: Ta có câu lệnh sau trong .htaccess:
Ví dụ:
ErrorDocument 404/loi404.html
Khi bị dính lỗi này : Trình duyệt sẽ tự động chuyển bạn đến trang loi.404.html nằm ngang hàng với tệp tin .htaccess
7) 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 BW 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 vd:cặp tag [IMG]) làm cho lượng BW 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 Pumama 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.
Thế là ai link đến trang của bạn tùy thích* nhưng mà link đến các ảnh sẽ bị lỗi nặng nề.
Hoặc Có thể sử dụng một hình ảnh nào đó cảnh cáo những kẻ “ăn trộm” BW* 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]
Bạn nhớ thay cái link http://www.trangweb.com/diehotlinker.jpg thành link IMAGE mà bạn muốn hiển thị khi bị ăn cắp IMAGE.
8) 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.
9) Cấm/hạn chế IP truy nhập(rất hay)
Bạn phát hiện ra có một số người phá trang web bạn hay thực hiện những hành vi ko chính đáng làm tổn hại đến trang web của bạn (vd điển hình là bấm nhìu lần vô quảng cáo Google ).Bạn muốn ngăn cấm ko cho người đó típ tục phá phách? .Dòng lệnh sau trong tập tin .htaccess sẽ giúp bạn một cách triệt để và hiệu quả .
+Chỉ cho phép một số IP truy cập:
order deny*allow
deny from all
allow from IP
allow from 203.162.*
Với deny là cấm – allow là cho phép – order deny*allow phải có
Bạn có thể để Ip dạng 203.162.*(có thể thay đổi tùy bạn) – việc này sẽ cho phép các Ip bắt đầu bằng 203.162
+Cấm một số ip truy cập:
order allow*deny
allow from all
deny from IP
deny from 203.162.*
Với deny là cấm – allow là cho phép – order deny*allow phải có
Bạn có thể để Ip dạng 203.162.*(có thể thay đổi tùy bạn) – việc này sẽ cấm các Ip bắt đầu bằng 203.162
P/S: 2 đoạn code trên rất hữu dụng với các WebMaster trong việc bảo mật. Nó sẽ ngăn ko cho các IP ko hợp lệ vô trang Admin(bạn phải đặt .htaccess trong file ADMIN thì mới có tác dụng)
10) 301 redirect
-Cách này sẽ giúp cho các WebMaster mong muốn kiếm tiền từ quảng cáo(nhất là GA) nó sẽ bắt người dùng sử dụng một tên miền nhất định do bạn chọn (một domain sẽ có 2 kiểu địa chỉ (Vd: www.pumamavn.com và pumamavn.com)
Sử dụng cả 2 kiểu địa chỉ sẽ làm giảm traffic của site bạn nên Pumama lựa chọn cách sau để tối ưu hóa link nhằm thân thiện hơn với các hệ thống quảng cáo.
Bạn thêm code sau vào .htaccess:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^\.pumamavn\.com$[NC]
RewriteRule ^(.*)$ http://www.pumamavn.com [R=301*L]
- Bạn phải thay pumamavn.com bằng địa chỉ của bạn. Các câu lệnh trên sẽ chuyển tất cả các địa chỉ pumamavn.com thành www.pumamavn.com
Tất nhiên, URL rewriting rất đa dạng và phong phú, tuỳ sự sáng tạo của từng webmaster mà sẽ cho ra những url độc đáo không đụng hàng, ví dụ như:
http://abc.com/Music/#List_Album2,-1,1
http://abc.com/Products/#IPhone|3GS|32G
1. Ngăn chặn hotlinkNhiề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
Options +FollowSymlinks
#Ngăn chặn hotlink

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?vannyneo.com/ [nc]
RewriteRule .*.(gif|jpg|png)$ http://vannyneo.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.vannyneo.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.vannyneo.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 113.190.183.138
deny from 113.190

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

Sử dụng đoạn mã sau
ServerSignature EMail
SetEnv SERVER_ADMIN default@vannyneo.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.
#Bảo vệ .htaccess File

order allow,deny
deny from all
5

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
resides
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

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://vannyneo.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} !^example.com$ [NC]
RewriteRule ^(.*)$ http://example.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.example.com$ [NC]
RewriteRule ^(.*)$ http://www.example.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
cấu trúc IP VD: 210.245.24.22
order deny,allow
deny from all
allow from 58.186.101.237
allow from 58.186.101.236
Share on Google Plus

About lamnguyen

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.

0 nhận xét:

Đăng nhận xét