wordpress 裸域 vs www

Posted

技术标签:

【中文标题】wordpress 裸域 vs www【英文标题】:wordpress naked domain vs www 【发布时间】:2014-11-24 10:38:45 【问题描述】:

我有一个wordpress网站somewebsite.com

如果我像这样赤身裸体地访问它,它会非常有效,但是如果我从 www.somewebsite.com 访问它,我会得到

Warning: Cannot modify header information - headers already sent by (output started at /home/somewebsite/public_html/index.php:2) in /home/somewebsite/public_html/wp-includes/pluggable.php on line 1121

在 wordpress 网站常规设置中设置为somewebsite.com

CPANEL 我有以下内容

    A recordsomewebsite.com 指向 IP 地址 CNAME recordwww.somewebsite.com 指向 somewebsite.com

只是为了好玩,我将 wordpress 常规设置中的设置更改为 www.somewebsite.com,如果我要使用 www 访问它,但会因为裸域而破坏它,所以我将其切换回来。

p>

我的.htaccess 看起来像

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

任何帮助将不胜感激

【问题讨论】:

【参考方案1】:

简单是最好的 :-) 使用 .htaccess 将非 www 重定向到 www 或将 www 重定向到非 www,因此在 php 中加载任何脚本之前将重定向用户。

RewriteEngine On
RewriteBase /
RewriteCond %HTTP_HOST ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

在你的例子中:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %HTTP_HOST ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule . /index.php [L]
</IfModule>

记得更改 .htaccess 的 chmod - 在某些情况下它可能会被 WordPress 覆盖。

【讨论】:

以上是关于wordpress 裸域 vs www的主要内容,如果未能解决你的问题,请参考以下文章

Heroku Godaddy 裸域 [关闭]

裸域和 http 到 https 重定向

Heroku/GoDaddy:将裸域发送到 www [关闭]

如何使用 Cloudfront 将裸域重定向到 www?

仅重定向到裸域

将 GoDaddy 裸域添加到 Heroku 应用