我正在努力将 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
现在一切都按预期进行。