From 7a8d8a3e8ac30c959d0a628ef5daf8c0b54b43bd Mon Sep 17 00:00:00 2001 From: Jake Spurlock Date: Tue, 23 Jun 2020 23:42:36 +0000 Subject: [PATCH] Canonical: Ensure that when permalinks are set to a trailing slash, that robots.txt doesn't. Fixes #48025. Props Toro_Unit, joostdevalk, SergeyBiryukov. git-svn-id: https://develop.svn.wordpress.org/trunk@48153 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/canonical.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/wp-includes/canonical.php b/src/wp-includes/canonical.php index befe58e684..a799c5c2d3 100644 --- a/src/wp-includes/canonical.php +++ b/src/wp-includes/canonical.php @@ -58,8 +58,7 @@ function redirect_canonical( $requested_url = null, $do_redirect = true ) { } if ( is_admin() || is_search() || is_preview() || is_trackback() - || is_robots() || is_favicon() - || ( $is_IIS && ! iis7_supports_permalinks() ) + || is_favicon() || ( $is_IIS && ! iis7_supports_permalinks() ) ) { return; } @@ -683,6 +682,11 @@ function redirect_canonical( $requested_url = null, $do_redirect = true ) { $redirect['host'] = $original['host']; } + // Even if the permalink structure ends with a slash, remove slash robots.txt. + if ( is_robots() ) { + $redirect['path'] = untrailingslashit( $redirect['path'] ); + } + $compare_original = array( $original['host'], $original['path'] ); if ( ! empty( $original['port'] ) ) {