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:
parent
72c7f2c41c
commit
de36eb3326
@ -57,8 +57,8 @@ function redirect_canonical( $requested_url = null, $do_redirect = true ) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( is_admin() || is_search() || is_preview() || is_trackback()
|
if ( is_admin() || is_search() || is_preview() || is_trackback() || is_favicon()
|
||||||
|| is_favicon() || ( $is_IIS && ! iis7_supports_permalinks() )
|
|| ( $is_IIS && ! iis7_supports_permalinks() )
|
||||||
) {
|
) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -655,8 +655,10 @@ function redirect_canonical( $requested_url = null, $do_redirect = true ) {
|
|||||||
$redirect['path'] = trailingslashit( $redirect['path'] );
|
$redirect['path'] = trailingslashit( $redirect['path'] );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove trailing slash for sitemaps requests.
|
// Remove trailing slash for robots.txt or sitemap requests.
|
||||||
if ( ! empty( get_query_var( 'sitemap' ) ) || ! empty( get_query_var( 'sitemap-stylesheet' ) ) ) {
|
if ( is_robots()
|
||||||
|
|| ! empty( get_query_var( 'sitemap' ) ) || ! empty( get_query_var( 'sitemap-stylesheet' ) )
|
||||||
|
) {
|
||||||
$redirect['path'] = untrailingslashit( $redirect['path'] );
|
$redirect['path'] = untrailingslashit( $redirect['path'] );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -682,11 +684,6 @@ function redirect_canonical( $requested_url = null, $do_redirect = true ) {
|
|||||||
$redirect['host'] = $original['host'];
|
$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'] );
|
$compare_original = array( $original['host'], $original['path'] );
|
||||||
|
|
||||||
if ( ! empty( $original['port'] ) ) {
|
if ( ! empty( $original['port'] ) ) {
|
||||||
|
@ -7,12 +7,8 @@
|
|||||||
*/
|
*/
|
||||||
class Tests_Canonical_Robots extends WP_Canonical_UnitTestCase {
|
class Tests_Canonical_Robots extends WP_Canonical_UnitTestCase {
|
||||||
|
|
||||||
function setUp() {
|
public function test_remove_trailing_slashes_for_robots_requests() {
|
||||||
parent::setUp();
|
$this->set_permalink_structure( '/%postname%/' );
|
||||||
}
|
|
||||||
|
|
||||||
function test_robots_url() {
|
|
||||||
$this->set_permalink_structure( '/%year%/%monthnum%/%day%/%postname%/' );
|
|
||||||
$this->assertCanonical( '/robots.txt', '/robots.txt' );
|
$this->assertCanonical( '/robots.txt', '/robots.txt' );
|
||||||
$this->assertCanonical( '/robots.txt/', '/robots.txt' );
|
$this->assertCanonical( '/robots.txt/', '/robots.txt' );
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
* @group sitemaps
|
* @group sitemaps
|
||||||
*/
|
*/
|
||||||
class Tests_Canonical_Sitemaps extends WP_Canonical_UnitTestCase {
|
class Tests_Canonical_Sitemaps extends WP_Canonical_UnitTestCase {
|
||||||
|
|
||||||
public function setUp() {
|
public function setUp() {
|
||||||
parent::setUp();
|
parent::setUp();
|
||||||
$wp_sitemaps = new WP_Sitemaps();
|
$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' );
|
||||||
$this->assertCanonical( '/wp-sitemap.xsl/', '/wp-sitemap.xsl' );
|
$this->assertCanonical( '/wp-sitemap.xsl/', '/wp-sitemap.xsl' );
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user