Apache 子域名重定向失败

Apache 子域名重定向失败

我刚刚购买了域名血管内皮素,我添加了 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>

相关内容