Apache 2.4:owncloud 位于 DocumentRoot 之外的子目录中

Apache 2.4:owncloud 位于 DocumentRoot 之外的子目录中

我正在努力将 owncloud 的当前设置从子域https://cloud.example.com移至子目录,https://example.com/cloud以使我的所有应用程序都受一个 SSL 证书的保护。问题是 owncloud 重定向到登录页面,但 Apache 在虚拟主机的 DocumentRoot 内进行重定向。别名/云不起作用 - 来自 /cloud 的每个请求都落到主站点。并且 PHP-FPM 7.3.33 抛出错误“出现错误‘主脚本未知’”。

因此,我的httpd.conf:

<VirtualHost *:443>
    ServerName example.com
    DocumentRoot /var/www/html

    Alias /cloud /var/www/owncloud
    <Directory /var/www/owncloud>
        SSLRequireSSL
        Options +FollowSymLinks
        AllowOverride All
        Require all granted

        <IfModule mod_dav.c>
            Dav off
        </IfModule>

        SetEnv HOME /var/www/owncloud
        SetEnv HTTP_HOME /var/www/owncloud
        SetEnv MOD_X_SENDFILE_ENABLED 1

        XSendFile On
        XSendFilePath /var/tmp
    </Directory>
</VirtualHost>

/var/www/owncloud/config/config.php:

  'trusted_domains' => 
      array (
        0 => 'locahost',
        1 => 'example.com',
      ),
  'datadirectory' => '/var/lib/owncloud',
  'overwrite.cli.url' => 'https://example.com/cloud',
  'overwritewebroot' => '/cloud',

我怎样才能实现这个目标?

谢谢。

答案1

解决方案是在 OWNCLOUD_HOME/.htaccess 中设置 RewriteBase:

RewriteBase /cloud

现在一切都按预期进行。

相关内容