File .htaccess mặc định trên website của WordPress không những tăng cường bảo mật mà còn giúp bạn xử lý Rewrite URL, nếu bạn di chuyển website từ Nginx sang hosting dễ xảy ra lỗi 404 (not found) thì điều đầu tiên bạ phải nghĩ đến đó là do file .htaccess.
Trường hợp xảy ra lỗi phổ biến:
- Chuyển hosting từ server sử dụng Nginx sang server dùng cPanel hoặc Apache
- Trang chủ vô được nhưng các trang con vô không được. Lỗi báo 404
File .htaccess nằm ở đâu trên hosting?
Bạn đăng nhập vào hosting của bạn, tìm đến domain đang báo lỗi và vào thư mục public_html
Sau đó nhấn chuột phải và nhấn Edit
- Khóa học SEO tại IMTA - Phương pháp SEO quy trình bài bản
- Khóa học quảng cáo Google Ads - Cơ bản đến chuyên sâu
- Khóa Học Digital Marketing - Chạy quảng cáo đa kênh kết hợp
File .htaccess mặc định của website WordPress
Nếu website bạn đang bị lỗi, bạn có thể copy file .htaccess mặc định sau của WordPress để thay thế nhé, trước khi copy bạn lưu ý nhớ lưu lại file cũ trên notepad.
Sau đây IMTA lưu trữ 3 dạng file mặc định .htaccess bạn hãy chọn loại phù hợp với website bạn nhé.
File .htaccess cho 1 website WordPress duy nhất (Only Site)
Code này fix lỗi .htaccess cho website của bạn (thư mục chứa website) chỉ có duy nhất 1 website
# BEGIN WordPress
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]
# END WordPress
File .htaccess mặc định cho WordPress multisite
Đây là file mặc định cho website wordpress làm multisite (nhiều website con)
# BEGIN WordPress Multisite
# Using subfolder network type: https://wordpress.org/documentation/article/htaccess/#multisite
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
# END WordPress Multisite
File .htaccess cho WordPress dùng Subdomain
# BEGIN WordPress Multisite
# Using subdomain network type: https://wordpress.org/documentation/article/htaccess/#multisite
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
# END WordPress Multisite
File .htaccess cho WordPress dùng Subfolder
# BEGIN WordPress Multisite
# Using subfolder network type: https://wordpress.org/documentation/article/htaccess/#multisite
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
# END WordPress Multisite
Một số lưu ý cho file .htaccess WordPress
Khi bạn cài đặt 1 số plugin thì có thể plugin sinh ra file .htaccess như plugin LiteSpeech Cache chẳng hạn, thì lúc này bạn không nên sửa các file do pluign sinh ra.
Lời kết
File này sửa rất đơn giản, tuy nhiên những bạn mới làm website thấy lỗi 404 khi chuyển hosting sẽ cảm thấy lo lắng. Bạn hãy lưu lại file này khi chuyển từ nginx sang Apche hoặc LiteSpeed Server copy vào để rewrite URL nhé.
Cảm ơn bạn đã đọc bài viết!