Canonical: Move trailing slash handling for robots.txt and sitemaps to a single condition.

Give the unit test a more descriptive name.

Follow-up to [48153], [48155].

See #48025.

git-svn-id: https://develop.svn.wordpress.org/trunk@48166 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Sergey Biryukov 2020-06-25 11:39:23 +00:00
parent 72c7f2c41c
commit de36eb3326
3 changed files with 10 additions and 15 deletions

View File

@ -57,8 +57,8 @@ function redirect_canonical( $requested_url = null, $do_redirect = true ) {
}
}
if ( is_admin() || is_search() || is_preview() || is_trackback()
|| is_favicon() || ( $is_IIS && ! iis7_supports_permalinks() )
if ( is_admin() || is_search() || is_preview() || is_trackback() || is_favicon()
|| ( $is_IIS && ! iis7_supports_permalinks() )
) {
return;
}
@ -655,8 +655,10 @@ function redirect_canonical( $requested_url = null, $do_redirect = true ) {
$redirect['path'] = trailingslashit( $redirect['path'] );
}
// Remove trailing slash for sitemaps requests.
if ( ! empty( get_query_var( 'sitemap' ) ) || ! empty( get_query_var( 'sitemap-stylesheet' ) ) ) {
// Remove trailing slash for robots.txt or sitemap requests.
if ( is_robots()
|| ! empty( get_query_var( 'sitemap' ) ) || ! empty( get_query_var( 'sitemap-stylesheet' ) )
) {
$redirect['path'] = untrailingslashit( $redirect['path'] );
}
@ -682,11 +684,6 @@ 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'] ) ) {

View File

@ -7,12 +7,8 @@
*/
class Tests_Canonical_Robots extends WP_Canonical_UnitTestCase {
function setUp() {
parent::setUp();
}
function test_robots_url() {
$this->set_permalink_structure( '/%year%/%monthnum%/%day%/%postname%/' );
public function test_remove_trailing_slashes_for_robots_requests() {
$this->set_permalink_structure( '/%postname%/' );
$this->assertCanonical( '/robots.txt', '/robots.txt' );
$this->assertCanonical( '/robots.txt/', '/robots.txt' );
}

View File

@ -7,6 +7,7 @@
* @group sitemaps
*/
class Tests_Canonical_Sitemaps extends WP_Canonical_UnitTestCase {
public function setUp() {
parent::setUp();
$wp_sitemaps = new WP_Sitemaps();
@ -38,4 +39,5 @@ class Tests_Canonical_Sitemaps extends WP_Canonical_UnitTestCase {
$this->assertCanonical( '/wp-sitemap.xsl', '/wp-sitemap.xsl' );
$this->assertCanonical( '/wp-sitemap.xsl/', '/wp-sitemap.xsl' );
}
}