修改 WordPress 默认的 sitemap 名称

想使用 WordPress 自带的 sitemap 功能,但不希望别人轻易找到路径。你可以通过隐藏或修改默认的 sitemap 路径,同时保持功能正常使用。

为了实现这一点,你可以采用以下方法:

1. 修改默认的 sitemap 路径(通过 functions.php)
你可以通过自定义 functions.php 文件来修改 sitemap 的路径。这样可以将默认的 /wp-sitemap.xml 或 /sitemap.xml 更改为一个你自己定义的路径。

// 自定义 WordPress Sitemap 路径
add_filter( 'rewrite_rules_array', 'custom_sitemap_rewrite_rule' );

function custom_sitemap_rewrite_rule( $rules ) {
    // 自定义 Sitemap 路径
    $custom_sitemap_path = 'my-custom-sitemap.xml';

    // 新的 rewrite 规则
    $new_rules = array(
        $custom_sitemap_path . '$' => 'index.php?sitemap=1',
    );

    return $new_rules + $rules;
}

add_action( 'template_redirect', 'custom_sitemap_redirect' );

function custom_sitemap_redirect() {
    if ( isset( $_GET['sitemap'] ) ) {
        // 使用 WordPress 自带的 Sitemap 功能
        include( ABSPATH . 'wp-sitemap.xml' );
        exit;
    }
}

2. 隐藏 Sitemap 路径(通过 .htaccess 防止直接访问)
为了防止别人通过猜测路径访问 sitemap 文件,你可以在 .htaccess 文件中阻止对默认 sitemap 路径的访问,但仍然允许通过你自定义的路径访问。

在 .htaccess 文件中添加以下规则:

# 禁止直接访问默认的 /wp-sitemap.xml 和 /sitemap.xml
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/wp-sitemap.xml$ [OR]
RewriteCond %{REQUEST_URI} ^/sitemap.xml$
RewriteRule ^ - [F,L]

3. 更新 robots.txt 文件
通过修改 robots.txt 文件,你可以阻止搜索引擎抓取默认的 sitemap 路径。这样,搜索引擎将不会主动去抓取 /wp-sitemap.xml 或 /sitemap.xml。

在 robots.txt 文件中加入以下内容:

User-agent: *
Disallow: /wp-sitemap.xml
Disallow: /sitemap.xml

不过,这只会影响搜索引擎,用户依然可以通过路径访问 sitemap。

4. 使用插件来隐藏或修改 sitemap 路径
如果你希望更加方便地管理并修改 sitemap 路径,而不想手动写代码,可以使用插件:

Yoast SEO 插件:允许你修改 sitemap 路径,或者选择禁用默认的 sitemap 功能。

Rank Math SEO 插件:同样提供 sitemap 路径的定制功能,并且能够隐藏默认的 sitemap。

5. 在后台生成自定义 Sitemap(完全自定义)
如果你想完全控制 sitemap 的生成,可以禁用默认的 sitemap 功能,并手动创建并更新 sitemap 文件。例如,可以使用 PHP 或通过插件生成自定义的 sitemap。

综合方案
修改默认路径:通过 functions.php 文件来修改 sitemap 路径,并且保持 WordPress 自带的 sitemap 功能。

防止直接访问:通过 .htaccess 或 functions.php 来禁止对 /wp-sitemap.xml 和 /sitemap.xml 的访问。

更新 robots.txt:阻止搜索引擎抓取默认路径,但不影响你使用的自定义路径。

这种方法既能保持使用 WordPress 自带的 sitemap 功能,又能有效避免别人轻易访问到它。你只需要定期检查和更新 sitemap 的自定义路径,并且确保搜索引擎能正确抓取。