Một số ví dụ rule Nginx
Một số ví dụ rule Nginx
Học VPS / NGINX / Một số ví dụ rule Nginx
21/09/2015
Luân Trần
13,610 Views
CHIA SẺ BÀI VIẾT:
Khác với Apache, Nginx không sử dụng file .htaccess nên khi bạn cần rewrite url sẽ phải convert qua rule của Nginx. Trong bài viết này, mình sẽ đưa ra một số ví dụ các rule của Nginx sử dụng để rewrite url, redirect và một số cấu hình cần thiết khác.
Khi sử dụng, bạn hãy thêm vào file cấu hình conf của tên miền, với HocVPS Script thì các file cấu hình này thường nằm trong thư mục /etc/nginx/conf.d/
Nội dung bài viết
Ngăn những site khác sử dụng hình ảnh
Redirect domain cũ sang domain mới
Redirect IP server sang domain bất kỳ
Cài WordPress trong Sub-folder
Canonical URLs
Đảm bảo website của bạn được search engine index một đường dẫn duy nhất.
www.mydomain.com -> mydomain.com
Redirect toàn bộ request từ www.mydomain.com sang mydomain.com, kèm theo cả đường dẫn và tham số phía sau url.
mydomain.com -> www.mydomain.com
Redirect toàn bộ request từ mydomain.com sang www.mydomain.com, kèm theo cả đường dẫn và tham số phía sau url.
SSL Sites
Google hiện tại đang sử dụng SSL là một yếu tố xếp hạng, nếu bạn sử dụng các site eCommerce, hãy sử dụng SSL.
Rule bên dưới sẽ redirect tất cả request sử dụng HTTPS, trường hợp này giả sử bạn sử dụng www.domain.com làm tên miền chính.
Bắt buộc sử dụng SSL
Bắt buộc phải sử dụng SSL với một đường dẫn bất kỳ:
Tối ưu Browser Caching
Bằng việc sử dụng browser caching, website của bạn sẽ load nhanh hơn rất nhiều kể từ sau lần visit đầu tiên:
Giới hạn IP truy cập
Trong trường hợp bạn muốn chỉ một số IP được phép truy cập, hãy sử dụng rule bên dưới:
Block IP
Khác với trường hợp chỉ cho phép một số IP được truy cập vào, rule bên dưới sẽ block một số IP xác định trước.
Ngăn những site khác sử dụng hình ảnh
Với đoạn code dưới, bạn sẽ hạn chế những site khác sử dụng hình ảnh trực tiếp:
Nếu bạn muốn chặn sử dụng ảnh trong 1 thư mục cụ thể:
Nếu bạn muốn thay vì báo lỗi mà hiển thị một hình ảnh khác, hãy sử dụng code bên dưới:
Lưu ý: Nếu trong cấu hình Nginx của website đã tồn tại đoạn cấu hình riêng về file hình ảnh/video thì bạn phải gộp chung với đoạn cấu hình đó chứ không tách riêng rẽ. Ví dụ đối với HocVPS Script:
Bảo vệ thư mục bằng mật khẩu
Đầu tiên, bạn cần sử dụng tool này để tạo file .htpasswd, sau đó dùng đoạn code bên dưới, giả sử mình lưu ở /root/.htpasswd
Rewrite URL
Ví dụ bên dưới giả sử bạn muốn rewrite (không phải redirect) đường dẫn http://domain.com/listing/123 thành http://domain.com/listing.php?id=123
(.*)
ở đây là regular expression, đại diện cho bất kỳ ký tự nào. Nếu thêm regular expression, bạn sử dụng tương ứng $2
, $3
…
Redirect URL cũ sang URL mới
Redirect /someoldarticle.html sang /some/newarticle.html
Redirect domain cũ sang domain mới
Redirect http://olddomain.com và toàn bộ đường dẫn con sang domain mới http://newdomain.com
Redirect IP server sang domain bất kỳ
Mục đích khi truy cập vào IP server, thay vì hiển thị nội dung mặc định của Nginx, người dùng sẽ được tự động redirect đến một địa chỉ website nào đó, ví dụ domain.com
.
Bạn hãy mở file cấu hình domain chính, tìm dòng nào có nội dung là listen 80 default_server;
thì thay bằng listen 80;
(xóa default_server). Tiếp theo, copy paste đoạn cấu hình dưới lên trên cùng file .conf, khởi động lại Nginx là xong:
Cài WordPress trong Sub-folder
Để chạy được WordPress ở thư mục con, bạn hãy thêm đoạn code sau vào đằng trước block location / { ... }
Hiển thị nội dung thư mục
Nếu thư mục không có file index, khi truy cập bạn có thể gặp thông báo lỗi “403 Forbidden“, không hiển thị những file bên trong đó. Để cho phép người dùng xem được thư mục này, bạn hãy chỉnh lại autoindex
là on
.
hoặc chỉnh lại là off
để không hiển thị nội dung thư mục:
Redirect link 404
Thông thường link 404 sẽ hiển thị thông báo lỗi của Nginx hoặc trang 404 của WordPress. Nếu bạn muốn hiển thị nội dung của trang chủ, có thể thêm đoạn code sau lên trước block location / { ... }
Nội dung index.php sẽ xuất hiện, tuy nhiên header status vẫn là 404. Nếu muốn header 200 thì bạn chuyển đoạn code thành: error_page 404 =200 /index.php;
Ngoài ra có một số tool tự động convert sang rule Nginx bạn có thể tham khảo thêm như:
Last updated