Trang chủ » Tại sao Permalink WordPress không hoạt động?

Tại sao Permalink WordPress không hoạt động?

by KDATA

Rất nhiều công việc trên trang web tập trung vào Tối Ưu Hóa Công Cụ Tìm Kiếm (SEO), vì điều này có thể giúp tăng khả năng hiển thị và xếp hạng tìm kiếm của bạn. Một phần trong chiến lược SEO của bạn nên dựa trên cấu trúc URL của bạn, mặc dù nếu permalink WordPress không hoạt động, bạn sẽ gặp khó khăn trong việc tăng trưởng lượng truy cập.

Tại sao Permalink WordPress không hoạt động?

Rất dễ dàng để nhận ra khi permalinks bị hỏng, nhưng điều không dễ hiểu là cách sửa chữa nó. Phần lớn thời gian, bạn sẽ phải vào các tệp cấu hình máy chủ của mình và thực hiện một số thay đổi. Tuy nhiên, một lần thiết lập lại nhanh chóng từ trong WordPress có thể là tất cả những gì bạn cần.

Trong các phần tiếp theo, chúng tôi sẽ hướng dẫn bạn cách làm gì khi permalinks của bạn không hoạt động trong WordPress. Đầu tiên, chúng ta sẽ cùng tìm hiểu về permalinks bị hỏng và chúng trông như thế nào.

Sale cuối năm

Permalink WordPess bị hỏng trông như thế nào?

Dù bạn sử dụng máy chủ nào hay cấu hình ra sao, permalinks bị hỏng đều trông giống nhau. Trong hầu hết các trường hợp, bạn sẽ thấy trang chủ của mình hoạt động bình thường, trong khi các trang khác lại hiển thị lỗi 404:

Permalink WordPess bị hỏng trông như thế nào?

Trong một số trường hợp cụ thể – ví dụ như các URL hợp lệ mà không tồn tại trên trang web – bạn có thể chuyển hướng lỗi 404 về trang chủ. Tuy nhiên, đây không phải là giải pháp lâu dài trong nhiều trường hợp, vì sẽ có một vấn đề tiềm ẩn mà bạn không nhận ra.

Hơn nữa, nếu permalinks của bạn không hoạt động trong WordPress, bạn sẽ không biết cho đến khi duyệt qua trang web của mình. Có thể dấu hiệu đầu tiên của bạn về sự cố là khi người dùng thông báo cho bạn. Điều này không tốt cho Trải Nghiệm Người Dùng (UX) và cũng không tốt cho danh tiếng của bạn.


Tại sao Permalink WordPress không hoạt động?

Slugs và permalink WordPress là những phần thường được cài đặt và quên đi khi thiết lập trang web của bạn. Mặc dù bạn có thể chỉnh sửa slugs theo từng bài đăng, nhưng bạn thiết lập cấu trúc permalink toàn cục ngay sau khi cài đặt WordPress lần đầu tiên.

Thực tế, phương pháp được khuyến nghị là để chúng ở trạng thái ban đầu sau khi cài đặt, vì việc thay đổi có thể ảnh hưởng đến SEO.

Do đó, việc permalinks bị hỏng trong WordPress khá khó sửa, vì bạn sẽ không có sự can thiệp trực tiếp vào việc làm hỏng chúng. Thay vào đó, có một số nguyên nhân khác mà bạn có thể khám phá:

  • Nếu bạn cài đặt một plugin mới, hoặc thay đổi cài đặt của một plugin cũ, điều này có thể gián tiếp thay đổi permalinks của bạn. Điều này đặc biệt đúng đối với những plugin liên kết với các tệp cấu hình máy chủ của bạn.
  • Dù tỉ lệ thấp, một số bản cập nhật core, theme và plugin có thể làm hỏng permalinks của bạn. Đây là lý do tại sao bạn luôn muốn có một bản sao lưu sạch và cập nhật (sẽ được nói đến sau).
  • Nếu bạn phải sử dụng bản sao lưu để phục hồi trang web của mình, điều này cũng có thể làm hỏng cấu trúc permalink. Điều này cũng áp dụng khi di chuyển trang web.
  • Tuy nhiên, có một nguyên nhân khiến permalinks của bạn không hoạt động trong WordPress phổ biến hơn: Việc chỉnh sửa thủ công các tệp cấu hình máy chủ. Nếu bạn quyết định chỉnh sửa các tệp này, nó sẽ gây ra vấn đề tương tự như một plugin xung đột.

Dù nguyên nhân gây ra lỗi là gì, bạn sẽ muốn bắt tay vào sửa chữa ngay. Bây giờ bạn đã biết nguyên nhân, hãy bắt đầu tìm kiếm và phát hiện vấn đề.

Những gì bạn cần để sửa Permalink WordPress bị hỏng

Nếu bạn chưa nhận ra, bạn sẽ cần phải vào các tệp cơ bản của máy chủ. Vì vậy, tốt nhất là chuẩn bị sẵn tất cả những gì bạn cần. Dưới đây là danh sách các yếu tố bạn sẽ cần chuẩn bị:

  • Quyền truy cập quản trị vào máy chủ của bạn để làm việc với các tệp của nó. Trong hầu hết các trường hợp, điều này sẽ không yêu cầu bạn thực hiện gì – đặc biệt nếu bạn là chủ sở hữu trang web.
  • Thông tin đăng nhập vào máy chủ của bạn. Bạn sẽ tìm thấy thông tin này trong bảng điều khiển của nhà cung cấp dịch vụ lưu trữ của bạn hoặc trong email từ họ. Nếu không thể tìm thấy thông tin, nhà cung cấp dịch vụ của bạn sẽ cho bạn biết nơi có thể tìm thấy chúng.
  • Một công cụ SFTP (Secure File Transfer Protocol) như Cyberduck, FileZilla, hoặc Transmit. Mỗi công cụ này đều có khả năng duyệt tệp đơn giản trên máy chủ của bạn.
  • Kỹ năng sử dụng SFTP mà không gây ra sự cố. Điều này gần như hiển nhiên rằng bạn sẽ cần phải biết cách sử dụng SFTP trong suốt hướng dẫn này.
  • Một bản sao lưu sạch, đầy đủ và cập nhật của trang web của bạn, và có thể cả máy chủ. Nếu bạn cần phục hồi do lỗi dai dẳng (hoặc lỗi được tạo ra), bản sao lưu của bạn sẽ trở thành tệp quý giá nhất.

Mặc dù có thể có các công cụ tùy chọn như trình soạn thảo văn bản, nhưng chúng không cần thiết. Danh sách trên là tất cả những gì bạn cần để sửa permalink WordPress bị hỏng.

Cách sửa Permalink WordPress không hoạt động

Khi bạn đã chuẩn bị đầy đủ công cụ, kỹ năng và dịch vụ cần thiết, bạn có thể bắt đầu công việc. Trong vài phút tới, chúng tôi sẽ hướng dẫn bạn cách sửa permalinks không hoạt động trong WordPress theo các cách sau:

  • Bạn sẽ thiết lập lại permalinks từ bảng điều khiển WordPress, và việc này chỉ mất vài giây.
  • Bạn sẽ kiểm tra sự xung đột và không tương thích với các plugin có thể ảnh hưởng đến permalinks.
  • Đối với các máy chủ Apache, chúng tôi sẽ chỉ bạn nơi cần xem để sửa vấn đề permalinks.
  • Chúng tôi cũng sẽ chỉ bạn điều tương tự cho các máy chủ Nginx, vì chúng cũng phổ biến (nếu không muốn nói là phổ biến hơn).

Cuối bài viết, bạn sẽ có kiến thức đúng đắn để đảm bảo rằng bạn có thể sửa bất kỳ vấn đề nào liên quan đến permalinks trong tương lai. Có rất nhiều thứ cần phải làm, vì vậy chúng ta sẽ bắt đầu ngay trong WordPress.

1. Thiết lập lại Permalink WordPress

Hi vọng rằng việc thiết lập lại permalinks trong bảng điều khiển WordPress sẽ giải quyết được vấn đề của bạn. Điều này chỉ mất vài giây, và vì đây là một cách đơn giản để sửa lỗi permalinks, chúng tôi khuyên bạn nên làm điều này trước tiên.

Để bắt đầu, vào trang Cài đặt > Permalinks trong WordPress:

Thiết lập lại Permalink WordPress

Với hầu hết các cài đặt WordPress hiện đại, bạn sẽ có cấu trúc permalink với tên bài đăng. Tuy nhiên, hiện tại chúng ta cần thay đổi nó tạm thời.

Để làm điều này, hãy chọn bất kỳ nút radio nào khác. Nếu bạn muốn thận trọng về việc giữ nguyên cấu trúc URL, bạn có thể chọn Cấu trúc Tùy chỉnh và sử dụng thẻ /%postname%/:

Thiết lập lại Permalink WordPress

Tiếp theo, lưu thay đổi của bạn, chọn lại cấu trúc ban đầu (trong trường hợp này là Tên bài đăng), rồi lưu lại một lần nữa. Điều này sẽ kích hoạt việc thiết lập lại permalinks, vì vậy hãy kiểm tra trang web của bạn và xem liệu vấn đề đã được giải quyết chưa.

2. Kiểm tra sự xung đột và không tương thích của Plugin

Cách tiếp theo để sửa permalink WordPress không hoạt động là cách tiếp cận phổ biến để sửa nhiều vấn đề trong WordPress. Các plugin (tất nhiên) ảnh hưởng đến rất nhiều khu vực trên trang web của bạn, đến mức một plugin không tương thích có thể gây ra sự cố với permalinks.

Cách chuẩn mực ở giai đoạn này là đăng nhập vào máy chủ qua SFTP, nhưng trong trường hợp này chúng ta không cần phải làm vậy.

Thay vào đó, vào trang Plugin > Installed Pluginstrong WordPress:

Kiểm tra sự xung đột và không tương thích của Plugin

Trên màn hình này, chọn mọi ô checkbox cho từng plugin – bạn có thể sử dụng ô checkbox toàn cục ở trên cùng để tiết kiệm thời gian – và chọn Deactivate từ menu Bulk Actions:

Kiểm tra sự xung đột và không tương thích của Plugin

Điều này sẽ tắt mọi plugin, nhưng hy vọng sẽ sửa được vấn đề permalinks mà bạn gặp phải.

Tiếp theo, kích hoạt từng plugin một cho đến khi bạn phát hiện plugin nào khiến permalinks của bạn không hoạt động. Khi đã tìm ra plugin, hãy vô hiệu hóa nó một lần nữa và trả lại trang web của bạn về trạng thái ban đầu, không có plugin gây sự cố.

Tại thời điểm này, bạn có một vài lựa chọn:

  • Xóa plugin nếu bạn không còn cần đến nó nữa.
  • Tìm một plugin thay thế, bắt đầu từ Thư mục Plugin của WordPress.
  • Liên hệ với nhà phát triển để thông báo và yêu cầu sửa lỗi.

Dù sao, bạn cũng sẽ muốn giữ plugin bị vô hiệu hóa cho đến khi có giải pháp, vì bạn không muốn permalinks của mình tiếp tục bị hỏng.

3. Cấu hình máy chủ Apache

Mặc dù không còn phổ biến như trước đây, các máy chủ Apache vẫn là một phương pháp vững chắc để lưu trữ trang web của bạn. Hơn nữa, chúng rất dễ quản lý đối với người dùng bình thường (mặc dù điều này có thể có những hạn chế, nhưng đó là một câu chuyện khác).

Vì vậy, hãy cùng xem qua một số công việc bạn có thể thực hiện để làm cho permalinks của WordPress hoạt động trở lại.

Làm việc với tệp .htaccess để làm cho Permalinks hoạt động lại

Tương tự như việc thay đổi các cấu trúc permalink khác nhau trong WordPress, bạn cũng có thể đặt lại tệp .htaccess của mình. Để hiểu rõ hơn, đây là một tệp cấu hình giúp máy chủ quản lý nội dung của nó.

Bạn có thể chỉnh sửa tệp này với các hướng dẫn mới, nhưng trong trường hợp này, chúng ta muốn vô hiệu hóa nó (hoặc ít nhất, không để máy chủ sử dụng tạm thời).

Bạn có thể chỉnh sửa tệp .htaccess với các hướng dẫn mới, nhưng trong trường hợp này, chúng ta muốn vô hiệu hóa nó (hoặc ít nhất, không để máy chủ sử dụng tạm thời).

Để thực hiện việc này, bạn cần đăng nhập vào máy chủ của mình bằng thông tin xác thực đã có và sử dụng ứng dụng SFTP mà bạn đã chọn. Khi đã vào được, bạn cần điều hướng đến đúng trang web. Nếu đây là trang web duy nhất trên máy chủ của bạn, việc này sẽ không quá khó khăn. Tuy nhiên, nếu có nhiều trang web, hãy tìm một thư mục có tên cụ thể.

Nếu bạn không thể nhìn thấy tên trang web của mình, có thể đó là cài đặt chính của máy chủ. Trong trường hợp này, hãy tìm các thư mục như www, root, public_html hoặc các thư mục tương tự. Các tệp của trang web của bạn sẽ ở trong đó.

Khi đã vào đúng thư mục, tìm tệp .htaccess. Nó sẽ nằm trong thư mục cấp cao nhất:

Làm việc với tệp .htaccess để làm cho Permalinks hoạt động lại

Mặc dù bạn có thể sao lưu tệp này, nhưng nó sẽ vẫn nằm trên máy chủ của bạn, nhưng với một tên khác. Để làm điều này, bạn chỉ cần nhấp chuột phải vào tệp và trong menu ngữ cảnh, tìm tùy chọn Rename(hoặc tương tự):

Làm việc với tệp .htaccess để làm cho Permalinks hoạt động lại

Điều này sẽ khiến WordPress bỏ qua tệp .htaccess, như thể nó không tồn tại. Sau đó, bạn chỉ cần đặt lại permalinks theo bước đầu tiên trong hướng dẫn của chúng tôi. Việc này sẽ tạo ra một tệp .htaccess mới trên máy chủ của bạn, và bạn có thể kiểm tra xem permalinks có hoạt động không.

Nếu permalinks hoạt động, có thể chính tệp .htaccess là nguyên nhân gây ra lỗi. Bạn có thể cần thử cắt và dán để tìm dòng nào gây ra vấn đề, nhưng vì bạn đã có một tệp .htaccess mới sẵn sàng, có thể bạn không cần phải làm vậy.

Thêm quy tắc AllowOverride vào tệp cấu hình Apache

Với mẹo tiếp theo, bạn sẽ cần vào thư mục gốc của máy chủ. Đây là cấp độ cao nhất mà bạn có thể truy cập, và cần lưu ý rằng một số nhà cung cấp dịch vụ lưu trữ có thể không cho phép bạn thực hiện điều này.

Do đó, nếu bạn sử dụng máy chủ chia sẻ, điều này có thể không phải là một lựa chọn. Tuy nhiên, những người quản lý máy chủ hoặc sử dụng Mạng Riêng Ảo (VPN) có thể thực hiện các bước sau.

Bạn sẽ biết mình đang ở đúng vị trí vì sẽ có một thư mục etc. Trong khi một số máy chủ có thể có đường dẫn và tệp etc/httpd/httpd.conf, các máy chủ Linux có thể sử dụng etc/apache2/apache2.conf.

Thêm quy tắc AllowOverride vào tệp cấu hình Apache

Bạn sẽ cần thêm một quy tắc vào tệp apache2.conf để cho phép bạn ghi đè một số khía cạnh của máy chủ theo từng thư mục. Chúng tôi sẽ không đi sâu vào chi tiết kỹ thuật của quy tắc này ở đây, vì bạn không cần phải hiểu rõ mọi chi tiết. Tuy nhiên, bạn sẽ muốn chắc chắn sao lưu trước khi thực hiện thay đổi này.

Quay lại ứng dụng SFTP của bạn, điều hướng đến tệp apache2.conf và mở nó trong trình soạn thảo văn bản. Trong tệp này, tìm đoạn mã sau:

<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

Bạn sẽ muốn thay đổi dòng AllowOverride None thành AllowOverride All. Sau khi lưu các thay đổi của mình, hãy kiểm tra xem permalinks đã hoạt động chưa.

Nếu không, bạn có thể cần khởi động lại máy chủ. Đây là một kỹ thuật nâng cao sử dụng quyền truy cập Secure Shell (SSH). Chúng tôi sẽ đề cập đến kỹ thuật này trong một bài viết khác trên blog.

Khi bạn đã vào máy chủ, nhập sudo systemctl restart apache2 để khởi động lại máy chủ. Vì sự phức tạp của các nhà cung cấp dịch vụ khác nhau, bạn sẽ muốn liên hệ với họ nếu gặp phải bất kỳ vấn đề nào.

Nhiều nhà cung cấp dịch vụ có cách tiếp cận riêng để truy cập vào máy chủ của bạn, và bạn sẽ muốn tìm phương pháp tối ưu nhất.

4. Cấu hình máy chủ Nginx

Nginx là một “chiếc xe đua siêu mượt” so với Apache, như một chiếc xe hơi thể thao so với một chiếc xe hơi thông thường. Chính vì vậy, Nginx có nhiều người hâm mộ và chiếm thị phần lớn hơn so với đối thủ.

Hạn chế của Nginx là việc tìm các tệp cấu hình cần thiết có thể khó khăn hơn so với các loại máy chủ khác. Tuy nhiên, vẫn có thể thực hiện được, và chúng tôi sẽ chỉ cho bạn cách sửa permalinks không hoạt động trên các máy chủ Nginx.

Tìm tệp cấu hình Nginx

Trước tiên, bạn cần tìm tệp cấu hình đúng. Bạn có thể cần hỏi nhà cung cấp dịch vụ lưu trữ của mình về vị trí chính xác của tệp trên máy chủ. Đối với chúng tôi, tệp này nằm trong thư mục etc/nginx/site-enabled/, nhưng của bạn có thể khác.

Khi đã vào trong thư mục này, tìm tệp có tên default.conf hoặc một tệp có tên giống trang web của bạn – nếu không chắc chắn, hãy hỏi nhà cung cấp của bạn.

Các tệp cấu hình của Nginx sử dụng các khối mã để xác định các quy tắc khác nhau, và bạn sẽ nhận biết đúng tệp khi tìm thấy một khối bắt đầu bằng server {.

Khi tìm thấy khối này, bạn có thể sửa đổi nó tùy thuộc vào việc trang web của bạn nằm trong thư mục gốc hay trong một thư mục con.

Chỉnh sửa tệp cấu hình Nginx

Khi tệp default.conf đã mở, và con trỏ của bạn đang ở vị trí xung quanh khối server, tìm một khối thụt lề khác, lần này là location /. Trong đó, thêm dòng sau:

try_files $uri $uri/ /index.php?$args;

Khối đầy đủ sẽ giống như sau:

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

Điều này chỉ áp dụng nếu trang web của bạn nằm trong thư mục gốc của máy chủ. Nếu trang web của bạn nằm trong thư mục con – có thể đây là một trong nhiều trang web – bạn sẽ muốn chỉ định thư mục con đó:

location /subdirectort/ {
try_files $uri $uri/ /subdirectory/index.php?$args; 
}

Khi đã lưu các thay đổi, hãy khởi động lại máy chủ của bạn bằng lệnh sudo systemctl reload nginx. Như với các hướng dẫn Apache, bạn có thể không thể thực hiện điều này, trong trường hợp đó, hãy liên hệ với nhà cung cấp dịch vụ của bạn và yêu cầu họ hỗ trợ.

Kết luận

Permalinks của bạn là cách dễ đọc để truy cập vào các bài viết và trang trên trang web của bạn. Nếu chúng gặp sự cố, hậu quả có thể làm sập trang web của bạn.

Thường thì, lần đầu tiên bạn biết permalink WordPress không hoạt động là khi người dùng nhận được một loạt lỗi 404.

Để sửa lỗi, trường hợp tốt nhất là bạn có thể đặt lại permalink WordPress. Tuy nhiên, trong nhiều trường hợp khác, bạn sẽ phải mở máy chủ của mình và xóa (hoặc chỉnh sửa) các tệp để làm cho chúng hoạt động trở lại.

Bài viết này sẽ cung cấp cho bạn các kỹ năng và quy trình cần thiết để khắc phục và tiếp tục công việc.

Bài viết liên quan