我想在我的新服务器上将我的网站domain.com重定向到www.domain.com,但它不起作用。我尝试使用虚拟主机和.htaccess但没有成功。你知道这是什么问题吗?
我的主人
<VirtualHost *:80>
ServerName www.domain.com
DocumentRoot /var/www/domain
<Directory "/var/www/domain">
Options -Indexes MultiViews
AllowOverride All
Order allow,deny
Allow from all
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php
</Directory>
ErrorLog ${APACHE_LOG_DIR}/domain-error.log
</VirtualHost>
<VirtualHost *:80>
ServerName domain.com
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain.com [NC]
RewriteRule ^/(.*)$ http://www.domain.com/$1 [L,R=301]
RewriteRule ^(.*)index.(htm|html|php|asp)$ /$1 [R=301,L]
</VirtualHost>
答案 0 :(得分:0)
如果这是Apache 2.2,则需要为此站点的IP地址指定NameVirtualHost
,以便同时使用两个VirtualHost块。
否则,Apache将选择与IP地址和端口匹配的第一个,忽略ServerName和ServerAlias行(如果没有ServerName或ServerAlias与请求匹配,则会发生相同的情况)。
This directive is no longer necessary in Apache 2.4但是,如果你正在运行它,请忽略这个答案。
或者,由于您的域重写已经测试了HTTP_HOST,因此您可以将其移动到与其他规则和内容相同的VirtualHost块中。确保将其放在操纵URL的其他规则之前。