我刚刚购买了域名血管内皮素,我添加了 DNS 规则血管内皮素和www.vas.im,然后我尝试让 apache2 将后者重定向到前者。我启用了 mod_rewrite,附加了/etc/apache2/httpd.conf
以下内容,然后重新启动了 apache2 服务。
ServerName localhost
AccessFileName .htaccess
# Redirect www to non-www
RewriteEngine On
RewriteEngine On
RewriteCond %{HTTP_HOST} ^[url]www.vas.im[/url] [NC]
RewriteRule ^(.*)$ [vas.im...] [L,R=301]
我肯定犯了什么错误,因为 www 域名没有重定向。我并不假装我了解 mod_rewrite,所以我想知道这里是否有人知道问题是什么。
答案1
我建议你这样做:
<VirtualHost *:80>
ServerName www.vas.im
#ServerAlias vas.net
#add aliases if any
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.vas\.im$ [NC]
RewriteRule ^ http://vas.im/%{REQUEST_URI}%{QUERY_STRING} [L,QSA,R=301]
</VirtualHost>
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /path/to/documentroot
ServerName vas.im
ErrorLog logs/your_log_file_name
CustomLog logs/your_log_file_name common
</VirtualHost>
或者,您可以将第一个虚拟主机块更改为:对于此方法,您必须使用mod_alias's
Redirect
。因此,请确保您已mod_alias
在文件中加载该模块.conf
。
<VirtualHost *:80>
ServerName www.vas.im
#ServerAlias vas.net
#add aliases if any
RedirectMatch 301 /(.*) http://vas.im/$1
</VirtualHost>