想使用 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 的自定义路径,并且确保搜索引擎能正确抓取。