我正在使用VirtualDocumentRoot来拥有多个域和子域。 一切顺利,直到有人试图通过IP或不存在的域到达我的服务器。例如10.10.10.10导致404 Not Found错误。 也许有人可以帮我找到将不存在的域或IP重定向到我的主域www.example.com的解决方案?
让我说清楚:不存在的子域名正在被重定向,但不存在的域名不是。
HTTPD.CONF:
<VirtualHost *:80>
ServerName default
ServerAlias *
#www.example.com == /httpdocs/example.com/www/
VirtualDocumentRoot /httpdocs/%-2.0.%-1/%-3
</VirtualHost>
/httpdocs/example.com/.htacces:
# Rewrite all non-existing subdomains to www.
RewriteCond %{HTTP_HOST} example\.com$
RewriteRule ^.*$ http://www.example.com%{REQUEST_URI} [R=301,L]
答案 0 :(得分:1)
我的问题的解决方案是:
将此添加到我的webroot文件夹中的.htacces /httpdocs/.htaccess
这将导致所有不存在的域在根文件夹中结束操作,然后由.htaccess获取它们。 (不再有符号链接)
# Enable Rewrite Engine
RewriteEngine on
# Rewrite all non-existing domains to example.com
RewriteCond %{HTTP_HOST} !example\.com$ [NC] #just add your main domain here
RewriteRule ^.*$ http://www.example.com%{REQUEST_URI} [R=301,L]
答案 1 :(得分:0)
mod_vhost_alias
中似乎存在“错误”,如果内插目录不存在,则无法指定故障转移/默认目录(请参阅this page底部的注释),以便我不认为你可以处理任意域名,你需要使用插值规则为你想要匹配的每个域名创建目录。
但是,对于IP地址,我相信如果您从此目录/httpdocs/230.239/132/
到/httpdocs/gdwebs.nl/www/
创建一个符号链接,那么它将起作用。
或者,如果您无法创建符号链接,请创建/httpdocs/230.239/132/
目录并使用htaccess重定向请求。