1

我有一个网站http://mywebsite.tld,我想将 www.mywebsite.tld 重定向到http://mywesite.tld(所以 www=>non-www )

(防止重复内容)

我已经阅读了很多解释,但目前没有人工作。

所以这是我的配置,也许有人可以帮助我。

1.我的目录。

/var/www/linktags我的网站。

在 /var/www/ 我有不同网站的根不同目录和 1 个 index.html (“它有效!”文件)

2.我的站点启用文件名为“linktags”

<VirtualHost *:80>
    ServerName link-tags.com
    ServerAdmin cedric.duma@gmail.com
    #ServerName http://www.link-tags.com
    ########## Directory ##########
    DirectoryIndex index.php index.cgi index.html index.htm
    DocumentRoot /var/www/linktags

    <Directory />
            Options +FollowSymLinks
            AllowOverride all
    </Directory>


    ########## Alias ##########

    ########## Log Directives ##########
    ErrorLog /var/www/linktags/logs/error.log
    CustomLog /var/www/linktags/logs/access.log vhost_combined
 </VirtualHost>

然后我的默认文件仍然在启用站点

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order deny,allow
            Allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </Directory>
  1. 在我的/var/www/linktags

我的 .htaccess 文件

<IfModule mod_rewrite.c>

Options +FollowSymlinks
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^(.*)$ %{HTTP_HOST}/$1 [C]

RewriteRule ^www\.(.*)$ http://$1 [R=301,L]

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

</IfModule>

我猜这是 wordress 生成的默认文件。

如您所见,我尝试了一些重写规则,但什么也没发生

我认为在启用站点的链接标签文件和我的 htaccess 中存在一些错误。

在我的专用服务器的 OVH 管理器中,我的 DNS 有以下配置:

.link-tags.com NS ns106.ovh.net
.link-tags.com NS dns106.ovh.net
.link-tags.com MX 1 redirect.ovh.net
.link-tags.com  A  xx.xx.xx.xx
www.link-tags.com CNAME link-tags.com
4

1 回答 1

1

让你的 .htaccess 像这样:

<IfModule mod_rewrite.c>

Options +FollowSymlinks
RewriteEngine On
RewriteBase /

# remove www
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [L,R=301]

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

</IfModule>

编辑:为 www创建一个ServerAliasin条目VirtualHost

<VirtualHost *:80>
    ServerName link-tags.com
    ServerAlias www.link-tags.com
    ServerAdmin cedric.duma@gmail.com
    #ServerName http://www.link-tags.com
    ########## Directory ##########
    DirectoryIndex index.php index.cgi index.html index.htm
    DocumentRoot /var/www/linktags

    <Directory />
            Options +FollowSymLinks
            AllowOverride all
    </Directory>

    ########## Alias ##########

    ########## Log Directives ##########
    ErrorLog /var/www/linktags/logs/error.log
    CustomLog /var/www/linktags/logs/access.log vhost_combined
 </VirtualHost>

PS:确保您在 WP 的设置中也使用非 www 域。

于 2013-09-13T10:49:39.303 回答