没有 www 前缀的 WP 站点无法正常工作

WP Site not working properly without www prefix

因此,根据我将 WP 设置 URLs 设置的内容,该网站要么只能在有 www 前缀的情况下正常工作,要么没有。

Working properly with www prefix

Without www prefix

Wordpress 地址和站点地址更改为不带 www 前缀的地址,问题是反过来。 (blendpunkt.at 正在工作但不是 www.blendpunkt.at)

您必须使用 Better Search Replace、Velvet Blues Update URLs 和后端 WordPress 的一般设置(主页和站点 URL).

https://wordpress.org/plugins/velvet-blues-update-urls/ https://wordpress.org/plugins/better-search-replace/

然后您必须将 https://wwwblendpunkt.at 更新为 https://blendpunkt.at 或相反。还要检查是否有 http 变体。

您可能还想强制执行 https(使用 HSTS 或其他解决方案,另请参阅 https://github.com/h5bp/html5-boilerplate/blob/master/dist/.htaccess 以及 https + www 重定向和强制执行 https 部分)。

请在使用这些插件前创建完整备份

因为如您所见,www.example.com 和 example.com 是不同的主机名并导致 CORS(跨源资源共享)错误。

PS:这个问题更适合 https://wordpress.stackexchange.com/

这似乎是一种解决方法,可能还有其他解决方案。但是按照您的要求,使用带有或带有我们前缀的 url 对您来说并不重要,您只希望地图能够正常工作。因此,可以选择将所有不带 www 的请求重定向到带 www 前缀的请求。

将您的 wordpress 和站点 url 更改为您的域 并使用 www 前缀。

用FTP访问wordpress的根目录下,应该有一个.htaccess文件。如果没有这样的文件,您可以创建一个(https://wordpress.org/support/article/htaccess/)。

在此文件中, 下方 RewriteEngine on 您插入此代码:

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [L,NE,R=301]

这样所有没有 https and/or 没有 www 的请求都将重定向到 https://www


另一种方法,无需对整个网站产生影响,您可以只为该特定页面创建重定向。将此代码片段调整为您的域并将其放入主题的 functions.php 文件中,或者创建一个重定向插件,如果您有多个重定向插件。

add_action( 'template_redirect', function() {
if( ( is_page('kontakt') ) ) {
        wp_redirect( 'https://www.yoursite.com/kontakt' );
        exit();
        }
});