我希望我的WordPress博客的域名为 example.com ,而不是 www.example.com (以及网页中的链接)。但WordPress可以通过redirect_canonical
自动将 example.com 重定向到 www.example.com 。虽然可以通过将remove_filter('template_redirect' 'redirect_canonical')
放在主题的php文件中来完全禁用此功能,但我认为该函数还有许多其他有用的重定向,因此我想禁用从 example.com 到重定向的重定向仅限 www.example.com 。目前,这不能仅通过服务器的URL重写配置来完成,因为它将导致无限重定向循环。我还检查源代码,找到以下可能相关的片段:
// www.example.com vs example.com
$user_home = @parse_url(home_url());
if ( !empty($user_home['host']) )
$redirect['host'] = $user_home['host'];
if ( empty($user_home['path']) )
$user_home['path'] = '/';
和
// Ignore differences in host capitalization, as this can lead to infinite redirects
// Only redirect no-www <=> yes-www
if ( strtolower($original['host']) == strtolower($redirect['host']) ||
( strtolower($original['host']) != 'www.' . strtolower($redirect['host'])
&& 'www.' . strtolower($original['host']) != strtolower($redirect['host']) ) )
$redirect['host'] = $original['host'];
所以我必须更改源代码吗?在任何一种情况下,我该怎么办?谢谢。
更新:或者更合适的是,如何通过自定义template_redirect
处理程序执行此操作?