如何设置默认文档root的root,如果虚拟文档根不存在



我已经使用vhost_alias设置了虚拟文档root,如果存在子域目录,则可以很好地工作。但是,如果不存在子域,它会引发403错误。我想设置一个默认的dir,如果sub域不存在。

当前VHOST CONC

<VirtualHost *:80>
        ServerAlias *.domain.com
        VirtualDocumentRoot /home/ubuntu/www/domain/%1
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
        <Directory "home/ubuntu/www/domain/*">
            Options Indexes FollowSymLinks
            AllowOverride All
            Order Allow,Deny
            Allow from all
            Require all granted
        </Directory>
</VirtualHost>

我尝试使用错误文档

errordocument 403 http://app.domain.com% {request_uri}?%{query_string}

但它更改了浏览器URL。有什么办法可以内部重定向吗?我也尝试过重写,但似乎不起作用。

RewriteEngine On
RewriteCond %{DOCUMENT_ROOT} !-d
RewriteRule %{DOCUMENT_ROOT} "/home/ubuntu/www/domain/app"  [QSA,L]

尝试过但不起作用

找到解决方案

RewriteEngine on
RewriteCond %{DOCUMENT_ROOT} !-d
RewriteRule (.*) http://app.domain.com/%{REQUEST_URI} [P,L]

添加此内部目录指令解决了我的问题。对于SSL站点,将其包括在Virutalhost块中

SSLProxyEngine on
ProxyPassReverse / https://app.domain.com/

最新更新