Apache 将所有无效的通配符子域重定向到根域

Apache 将所有无效的通配符子域重定向到根域

是否可以将所有 404 子域结果重定向到 apache2 中的根域?我在 DNS 提供商中使用通配符子域条目,并且 apache 设置为在与子域同名的文件夹中获取站点。但如果没有文件夹,我还希望它能够将其自身重定向到根域。

NameVirtualHost *:80

# Root domain
<VirtualHost *:80>
        ServerName example.com
        ServerAlias www.example.com
        DocumentRoot /var/www/example.com/public
</VirtualHost>

# Wildcard subdomains
<VirtualHost *:80>
        ServerAlias *.example.com
        VirtualDocumentRoot /var/www/%0/public
        # Redirect to root if `$0` folder doesn't exist
</VirtualHost>

答案1

当文件夹不存在时让我们重写

# Redirect to root if `$0` folder doesn't exist
RewriteEngine on
RewriteCond /var/www/%{SERVER_NAME}/public/ !-d
RewriteRule . http://www.example.com/ [R=301,L]

我尝试使用 DOCUMENT_ROOT,但没有成功

# RewriteCond %{DOCUMENT_ROOT} !-d

相关内容