没有 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();
}
});
因此,根据我将 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();
}
});