将www.domain重定向到http://域

时间:2013-09-13 09:33:14

标签: .htaccess http redirect mod-rewrite apache2

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

(防止重复内容)

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

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

1.my目录。

我的网站

/ var / www / linktags

/ var / www / i中的

在不同网站的根目录不同目录中 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
  2. 我的.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中的linktags文件中存在一些错误。

    在我的专用服务器的OVH管理器中,我为我的DNS提供了这个conf:

    .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
    

1 个答案:

答案 0 :(得分: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>

编辑:在ServerAlias条目中为www

创建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域。