Cách sửa lỗi 404 Permalink khi cài đặt WordPress trong thư mục con trên Nginx Ubuntu

Hướng dẫn này dành cho các Webmaster sửa lỗi truy cập bài viết/trang bị lỗi 404 sau khi cài wordpress trong thư mục con trong môi trường Nginx chạy Ubuntu. Cụ thể là Cài WordPress dùng SSL của Cloudflare và HostvnScript.

Permalinks là gì ?

Permalinks là một cấu trúc URL có thể liên kết đến một bài đăng trên blog cụ thể. Nó cũng được sử dụng để tạo các liên kết lưu trữ và phân trang. Permalink cho phép bạn có một điểm neo cho bất kỳ bài đăng blog nào, bất kể tên đường dẫn. WordPress là một hệ thống quản lý nội dung (CMS) phổ biến được viết bằng PHP. MySQL là máy chủ cơ sở dữ liệu phụ trợ cho WordPress. Nó duy trì các URL của nó bằng một permalink, URL đầy đủ của bất kỳ bài đăng, trang hoặc nội dung trang web nào khác. Máy chủ web Apache sử dụng .htaccess để quản lý permalinks cho WordPress. Nginx không tuân theo .htaccess, Vì vậy, chúng tôi cần thực hiện các thay đổi trong cấu hình Nginx để tuân theo các liên kết cố định của máy chủ web Nginx.

Sửa lỗi 404 Permalink khi cài đặt WordPress trong Subfolder

Vào /etc/nginx/conf.d và tTìm theo file tên miền domain.conf

Thêm vào đoạn :

location /blog {
index index.php index.html index.htm;
try_files $uri $uri/ /blog/index.php?$args;
}

Phía dưới như hình

Sửa lỗi too many redirects sau khi cài wordpress dạng subfolder

Nếu bạn chưa config bạn có thể gặp phải lỗi “too many redirects” khiến bạn không thể truy cập trang quản lý của WordPress. Bạn chỉ cần thêm vào đoạn đầu tiên trong file wp-config.php

if($_SERVER['PHP_SELF']=="/index.php")
{
define('WP_HOME','https://domain.com/blog/');
define('WP_SITEURL','https://domain.com/blog/');
}
else
{
define('WP_HOME','http://domain.com/blog/');
define('WP_SITEURL','http://domain.com/blog/');
}

Sửa lỗi Publishing failed. You are probably offline

Gặp phải lỗi “Cập nhật không thành công” hoặc “Xuất bản không thành công” khi cố cập nhật nội dung trên trang web WordPress của bạn? Bạn chỉ cần thêm đoạn sau vào file wp-config.php

//Begin SSL Server variable fix
$_SERVER["HTTPS"] = "on";
//END SSL