没有 www 前缀的 WP 站点无法正常工作
Posted
技术标签:
【中文标题】没有 www 前缀的 WP 站点无法正常工作【英文标题】:WP Site not working properly without www prefix 【发布时间】:2020-06-17 19:57:15 【问题描述】:因此,根据我将 WP Settings URLs 设置为的内容,该站点要么只能在带有 www 前缀的情况下正常工作,要么在不带 www 前缀的情况下正常工作。
Working properly with www prefix
Without www prefix
将 Wordpress 地址和站点地址更改为不带 www 前缀的地址,问题是反过来。 (blendpunkt.at 有效,但 www.blendpunkt.at 无效)
【问题讨论】:
【参考方案1】:您必须使用 Better Search Replace、Velvet Blues 更新 URL 和后端 WordPress 的常规设置(主页和站点 URL)等插件更新域才能使用不带 www 的变体。
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/
【讨论】:
非常感谢我让它工作了!很抱歉使用了错误的论坛,我刚加入这里。【参考方案2】:这似乎是一种解决方法,可能还有其他解决方案。但是按照您的要求,您是否使用带有或带有前缀的 url 对您来说并不重要,您只希望地图能够正常工作。因此,可以将所有不带 www 的请求重定向到带有 www 前缀的请求。
将您的 wordpress 和网站网址更改为您的域使用 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 和/或没有 www 的请求都将被重定向到https://www。
另一种方式,在不影响整个网站的情况下,您可以为该特定页面创建重定向。将此代码 sn-p 调整为您的域并将其放入主题的 functions.php 文件中,或者如果您有多个重定向插件,则可以创建一个用于重定向的插件。
add_action( 'template_redirect', function()
if( ( is_page('kontakt') ) )
wp_redirect( 'https://www.yoursite.com/kontakt' );
exit();
);
【讨论】:
以上是关于没有 www 前缀的 WP 站点无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章
没有 www 的域不工作,但有 www 的域在 Azure 上工作
Localhost端口已更改,但未在WordPress站点中反映出来