wordpress裸域vs www

时间:2014-09-29 22:37:37

标签: wordpress .htaccess dns cpanel

我有一个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我有以下

  1. A record somewebsite.com指向IP地址
  2. CNAME record www.somewebsite.com指向somewebsite.com
  3. 为了解决问题,我将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 个答案:

答案 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覆盖。

相关问题