Make WordPress Core

Opened 5 years ago

Closed 5 years ago

#47217 closed defect (bug) (invalid)

Missing htaccess Activation Breaks Rest API

Reported by: prinzfranz's profile prinzfranz Owned by:
Milestone: Priority: normal
Severity: normal Version: 5.2
Component: REST API Keywords:
Focuses: Cc:

Description

After Upgrading to 5.2 we suddenly had an issue with the Redirection-plugin. Checking Site Health Status turned up that the REST API was broken. Removing plugins did not solve the issue, so I installed a fresh WordPress demo and tried to reproduce the bug. I finally succeeded when setting the Permalinks-style to "Post name".
I tested the solution on the productive site and that solved my problem with the Rest Api. Of course I switched back to the original permalink style afterwards as I don't want to mess up SEO results.
As googling didn't yield anything pertaining to this problem as well as searching existing tickets I took the liberty of filing a bug report.

Attachments (2)

permalink-settings.png (98.0 KB) - added by prinzfranz 5 years ago.
site-health.png (74.4 KB) - added by prinzfranz 5 years ago.

Download all attachments as: .zip

Change History (9)

#1 @earnjam
5 years ago

  • Keywords reporter-feedback added

Welcome to WordPress Trac @prinzfranz!

This sounds like it may have been an issue with a plugin messing with the rewrite rules. I haven't been able to replicate this issue myself. I tried a fresh 5.2 install with permalinks style set to "Post name" and the REST API still worked for me.

Can you provide some step by step instructions as to how to reproduce the bug?

#2 @prinzfranz
5 years ago

  • Keywords reporter-feedback removed

Hi @earnjam,

thank you for your reply and sorry you can't reproduce the bug as non-reproducable bugs are bound to cause stomach-ache. What I just did to reproduce it is:

  • downloaded and installed a fresh instance of wordpress (https://wordpress.org/latest.zip, empty database, empty install directory)
  • after that, "Site Health Status" didn't show the warning concerning the REST API (just two warnings about unused plugins - Akismet and Hello Dolly - and unused themes)
  • then I set the URL structure in "Permalink Settings" to "Post name" and that's that, afterwards "Site Health Status" was/is showing the warning "The REST API encountered an unexpected result" (The requested URL /wp-json/wp/v2/types/post was not found on this server.)

The site is running on an Ubuntu 18.04.2 LTS server, Apache with PHP Version 7.3.5-1+ubuntu18.04.1+deb.sury.org+1. I'll try to attach images showing the Warning and Permalink-Settings. If there's any other information that could help I'll gladly provide it.

Many thanks and best regards!

#3 @prinzfranz
5 years ago

Hi @earnjam,

perhaps you could give me some guiding help where to find the code of the Site Health Status calls on the client as well as the receiving scripts on the server side? Then maybe I can sort out what's causing the trouble.

Thanks again and best regards!

#4 @earnjam
5 years ago

  • Keywords reporter-feedback added

Can you confirm permalinks are actually working when you change them? That is, can you view a page or a post on the front-end of the site at the pretty permalink URL? I'm wondering if your .htaccess file is not being updated properly to allow the rewrite rules to function properly.

#5 @prinzfranz
5 years ago

  • Keywords close added; reporter-feedback removed
  • Summary changed from Permalink Setting Post Name Breaks Rest API to MIssing htaccess Activation Breaks Rest API

Splendid! That solved it. Permalinks did work in fact, but rather accidentally thanks to our standard rewrite rules in the vhost file. Removing them and enabling .htaccess resolved the issue.

Thanks a thousand times for pointing me the right way, I was on a totally wrong track!

Best regards!

#6 @prinzfranz
5 years ago

  • Summary changed from MIssing htaccess Activation Breaks Rest API to Missing htaccess Activation Breaks Rest API

#7 @earnjam
5 years ago

  • Keywords close removed
  • Milestone Awaiting Review deleted
  • Resolution set to invalid
  • Status changed from new to closed
Note: See TracTickets for help on using tickets.