我有一个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
非常感谢任何帮助
答案 0 :(得分:3)
简单是最好的:-)使用.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覆盖。