Công cụ này làm gì
Công cụ tạo .htaccess viết tệp cấu hình Apache cho những việc phổ biến nhất: bắt buộc HTTPS, chọn giữa www.example.com và example.com, chuyển hướng vĩnh viễn 301, trang 404 tùy chỉnh, nén gzip, cache trình duyệt, header bảo mật, CORS, chống hotlink ảnh và fallback cho ứng dụng một trang.
Mỗi tính năng là một công tắc. Tệp cập nhật ngay khi bạn thay đổi tùy chọn, kèm chú thích ngắn giải thích từng khối, và bọc các quy tắc phụ thuộc module trong <IfModule> để trang web vẫn hoạt động khi thiếu module.
Cách sử dụng
- Nhập Tên miền (cần cho quy tắc www và hotlink).
- Bật các tính năng bạn muốn. Bắt buộc HTTPS và Tiền tố www được gộp thành một lần chuyển hướng duy nhất, nên người truy cập không bao giờ bị chuyển hướng hai lần.
- Thêm Chuyển hướng 301 dưới dạng các cặp
old newphân tách bằng;, ví dụ/old-page /new-page; /blog https://blog.example.com. - Sao chép kết quả hoặc nhấn Tải xuống để lưu thành
.htaccess. - Tải tệp lên thư mục gốc của trang web và thử vài URL, tốt nhất là trên máy chủ staging trước.
Ví dụ
Bắt buộc HTTPS và bỏ www cho example.com cho ra:
<IfModule mod_rewrite.c>
RewriteEngine On
# Force HTTPS and remove www
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^example\.com$ [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=301]
</IfModule>
Mẹo
- Chuyển hướng 301 được trình duyệt lưu cache. Khi thử nghiệm, hãy dùng cửa sổ ẩn danh hoặc xóa cache.
- Chỉ bật HSTS (một phần của header bảo mật khi bắt buộc HTTPS) sau khi HTTPS đã hoạt động trên mọi tên miền phụ.
- Dùng fallback cho ứng dụng một trang với các ứng dụng React, Vue hoặc Angular có định tuyến phía client.
Câu hỏi thường gặp
› Tôi đặt tệp .htaccess ở đâu?
Trong thư mục gốc (document root) của trang web (thư mục chứa index.html hoặc index.php) trên máy chủ Apache. Các quy tắc cũng áp dụng cho mọi thư mục con bên dưới.
› Tệp này có dùng được trên Nginx không?
Không. .htaccess chỉ được Apache và các máy chủ tương thích như LiteSpeed đọc. Nginx cần viết các quy tắc tương tự trong cấu hình máy chủ riêng của nó.
› Vì sao tôi gặp lỗi 500 sau khi tải tệp lên?
Thường là do một module mà tệp sử dụng chưa được bật. Mỗi khối đều được bọc trong <IfModule>, nhưng quy tắc mod_rewrite và Options -Indexes vẫn có thể lỗi khi nhà cung cấp hosting không cho phép qua AllowOverride. Hãy bỏ từng phần một để tìm ra thủ phạm.
› Làm sao để viết chuyển hướng?
Nhập các cặp đường dẫn cũ và URL mới, phân tách bằng dấu chấm phẩy, ví dụ /old /new; /blog https://blog.example.com. Mỗi cặp trở thành một chuyển hướng vĩnh viễn 301.