File .htaccess mặc định của WordPress
Hướng dẫn WordPress · cập nhật 02/08/2026
File .htaccess mặc định của WordPress chỉ có 11 dòng, nằm trong thư mục gốc website và làm đúng một việc: chuyển mọi đường dẫn không trỏ tới file có thật về index.php để WordPress dựng trang. Chép lại đoạn mặc định mất chưa tới một phút.
Bạn cần tới nó khi mọi trang con trả về 404 trong khi trang chủ vẫn chạy, khi vừa gỡ một plugin cache để lại luật cũ trong file, hoặc khi sửa file rồi website trả lỗi 500. Đưa file về bản gốc là cách nhanh nhất tách bạch lỗi nằm ở file cấu hình hay ở chỗ khác.
Tải bản .htaccess hiện tại về máy trước khi sửa. Sai một ký tự trong file này là toàn bộ website trả lỗi 500 và trang quản trị cũng không vào được, không có thông báo nào cho biết sai ở đâu. Có bản cũ trên máy thì tải ngược lên là website chạy lại ngay.
- Tải bản
.htaccessđang dùng về máy để giữ làm bản lui. - Chép đoạn mặc định đè lên nội dung cũ.
- Mở lại vài trang con để kiểm website còn chạy.
- Thêm lại từng luật riêng nếu website cần, thêm một luật rồi kiểm một lần.
Nội dung file .htaccess mặc định của WordPress
Đây là toàn bộ nội dung WordPress tự sinh cho một website đơn lẻ. Không có gì khác ngoài khối này, và khối này đủ để mọi đường dẫn thân thiện hoạt động:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Từng dòng làm một việc cụ thể:
| Dòng | Làm gì |
|---|---|
<IfModule mod_rewrite.c> | Chỉ chạy khối bên trong khi máy chủ có module rewrite, tránh lỗi 500 khi module tắt |
RewriteEngine On | Bật máy viết lại đường dẫn |
E=HTTP_AUTHORIZATION | Giữ lại tiêu đề xác thực cho REST API, thêm từ WordPress 5.7 |
RewriteBase / | Mốc tính đường dẫn, đổi nếu website nằm trong thư mục con |
^index\.php$ - [L] | Gọi thẳng index.php thì để yên, không viết lại nữa |
!-f và !-d | Chỉ viết lại khi đường dẫn không trỏ tới file hay thư mục có thật |
RewriteRule . /index.php [L] | Mọi thứ còn lại giao cho WordPress xử lý |
Hai dòng # BEGIN WordPress và # END WordPress không phải chú thích trang trí. WordPress dùng đúng hai dòng đó làm mốc để tự ghi lại khối này mỗi khi bạn lưu cấu trúc đường dẫn. Xoá mốc là WordPress không tìm thấy chỗ ghi và sẽ chèn thêm một khối nữa.
Tìm file .htaccess trên hosting ở đâu
File nằm cùng cấp với wp-config.php và thư mục wp-content, tức là thư mục gốc của website. Trên hosting Việt Nam thường là public_html, httpdocs hoặc domains/tenmien.com/public_html tuỳ bảng điều khiển.
Tên file bắt đầu bằng dấu chấm nên hệ điều hành xếp nó vào loại file ẩn, mặc định File Manager không hiện. Cách bật ở ba bảng điều khiển hay gặp:
- cPanel: mở File Manager, bấm Settings góc trên bên phải, tích Show Hidden Files rồi lưu.
- DirectAdmin: File Manager hiện sẵn file ẩn, không phải bật gì.
- Plesk: mở File Manager, bấm biểu tượng bánh răng, tích Show hidden files.
Dùng FTP thì bật hiện file ẩn trong phần mềm. FileZilla có mục ở Server rồi Force showing hidden files. Không thấy file dù đã bật hiện file ẩn nghĩa là file chưa tồn tại, mục dưới nói cách tạo lại.
Đặt lại file .htaccess về bản mặc định
Có hai đường: để WordPress tự sinh, hoặc chép tay. Đường thứ nhất an toàn hơn vì WordPress sinh đúng bản hợp với phiên bản đang chạy, nhưng chỉ làm được khi bạn còn vào được trang quản trị.
1. Để WordPress tự sinh lại file
Vào Settings rồi Permalinks, không đổi gì cả, bấm thẳng Save Changes. WordPress ghi lại khối mặc định vào file. Cách này giữ nguyên mọi luật của plugin nằm ngoài hai dòng mốc.
Nếu WordPress báo không ghi được file, quyền trên file đang chặn. Đặt quyền file về 644 và quyền thư mục gốc về 755 rồi thử lại.
2. Chép tay đoạn mặc định
Không vào được trang quản trị thì sửa file trực tiếp. Mở File Manager, bấm chuột phải vào .htaccess, chọn Edit. Xoá hết nội dung, dán đoạn mặc định ở mục trên vào, bấm lưu.
File đã bị xoá mất thì tạo mới: bấm New File, đặt tên đúng là .htaccess với dấu chấm đứng đầu và không có phần đuôi nào khác, rồi dán nội dung vào. Đặt tên thành htaccess.txt hay .htaccess.txt là máy chủ không đọc.
3. Kiểm website chạy lại chưa
Mở trang chủ, một bài viết và một trang chuyên mục. Cả ba phải ra nội dung. Chỉ mở trang chủ là chưa đủ, vì trang chủ chạy được cả khi khối rewrite hỏng, còn trang con thì không.
curl -s -o /dev/null -w "%{http_code}\n" https://tenmien.com/bai-viet-bat-ky/
Trả về 200 là xong. Trả về 500 là file còn sai cú pháp. Trả về 404 là khối rewrite chưa ăn, thường do module rewrite chưa bật trên máy chủ.
Website chạy trong thư mục con hoặc chạy Multisite
Bản mặc định ở trên đúng cho website đơn lẻ nằm ở thư mục gốc. Hai trường hợp dưới đây cần bản khác, dán nhầm bản là toàn bộ đường dẫn hỏng.
Website nằm trong thư mục con, ví dụ tenmien.com/blog. Đổi hai dòng để trỏ đúng thư mục:
RewriteBase /blog/
RewriteRule . /blog/index.php [L]
Website chạy Multisite thì khối dài hơn hẳn và khác nhau giữa bản cài theo thư mục con với bản cài theo tên miền con. Đừng chép tay bản Multisite từ trí nhớ. Vào Tools rồi Network Setup trong trang quản trị, WordPress in ra đúng đoạn cần dán cho cấu hình của bạn.
Hosting chạy Nginx thì không đọc .htaccess, file có nằm đó cũng không tác dụng gì. Luật rewrite tương đương phải khai trong cấu hình máy chủ, việc này thuộc phía quản trị hosting.
Thêm lại luật riêng sau khi đặt về mặc định
Đặt về mặc định là xoá luôn những luật bạn hoặc plugin đã thêm: chuyển HTTPS, chặn truy cập file nhạy cảm, đặt thời hạn cache cho ảnh. Website chạy lại rồi thì thêm từng luật trở vào, thêm một luật thì mở website kiểm một lần. Thêm cả cụm rồi mới kiểm là lúc hỏng không biết luật nào gây ra.
Đặt luật riêng của bạn bên ngoài hai dòng mốc, thường là phía trên # BEGIN WordPress. Luật đặt bên trong sẽ bị xoá mất trong lần WordPress ghi lại file kế tiếp, mà lần đó có thể xảy ra bất cứ lúc nào bạn lưu cấu trúc đường dẫn.
Vài luật hay dùng và bài liên quan: chuyển toàn bộ website sang HTTPS thì làm theo hướng dẫn chuyển từ HTTP sang HTTPS cho WordPress, chặn file xmlrpc.php để cắt lượt dò mật khẩu thì xem cách vô hiệu hoá XML-RPC trong WordPress. Giữ một bản chép của file đang chạy trên máy sau mỗi lần sửa xong, lần sự cố sau bạn sẽ cần tới nó.
Bài khác trong WordPress
Xem cả 18 bàiLàm theo vẫn chưa được?
Gửi yêu cầu hỗ trợ, kỹ thuật xem trực tiếp trên dịch vụ của Anh/Chị.