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 record
和 somewebsite.com
指向 IP 地址
CNAME record
与 www.somewebsite.com
指向 somewebsite.com
只是为了好玩,我将 wordpress 常规设置中的设置更改为 www.somewebsite.com
,如果我要使用 www
访问它,但会因为裸域而破坏它,所以我将其切换回来。
我的.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的主要内容,如果未能解决你的问题,请参考以下文章