seafile apache启用https后点击下载文件提示文件不存在


#1

按照官方的文档安装好了seafile,使用yum安装的httpd,此时配置好了之后web和客户端使用都正常。后来尝试使用https,也是参照官方文档的配置。配置好之后能正常登录,但是在web上下载文件或者预览图片都提示文件不存在。换回http就正常。
以下是配置文件:

<VirtualHost *:443>
ServerName jwgx-netdisk
# Use “DocumentRoot /var/www/html” for Centos/Fedora
# Use “DocumentRoot /var/www” for Ubuntu/Debian
DocumentRoot /var/www
SSLEngine On
SSLCertificateFile /home/w-yibin/cacert.pem
SSLCertificateKeyFile /home/w-yibin/privkey.pem

Alias /media  /home/w-yibin/netdisk/seafile-server-latest/seahub/media

RewriteEngine On

<Location /media>
    Require all granted
</Location>
#RewriteEngine On
#
# seafile fileserver
#
ProxyPass /seafhttp http://127.0.0.1:8082
ProxyPassReverse /seafhttp http://127.0.0.1:8082
RewriteRule ^/seafhttp - [QSA,L]

#
# seahub
#
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
ProxyPass / fcgi://127.0.0.1:8000/
ProxyPassReverse / fcgi://127.0.0.1:8000/

#2

这个情况应该是你web页面上管理员界面的FILE_SERVER_ROOT设置还是写的http,改成https应该就好了。image


#4

这里已经检查过了,启用https后不论是ccnet.conf还是seahub_settings.py,还是web下的都已经改成https开头并去掉了http时的端口号。甚至怀疑是防火墙以及SELinux的问题,但都关闭之后问题依旧。翻帖子后有人说这是apache2.4的一个bug,现在还没尝试在nginx下配置https。微信截图_20180312223301

微信截图_20180312223153


#5

问题应该找到了,仔细检查了一下发现,路径全是英文的文件和图片都能下载和预览,提示文件不存在的文件路径中包含了中文或者空格。在论坛看到有人说是apache的bug,把他升级到最新版本就可以解决。但我用的是yum安装的,已经执行了更新操作,问题还是依旧。

查关于apache编码设置的文章说,在主配置文件中将AddDefaultCharset设置为OFF或者GB3212或GBK能解决中文乱码问题,但这个办法似乎不适用于我的问题。也尝试着把这个设置改为en_US.UTF-8(因为在启动seahub时会提示LC_ALL is not set in ENV, set to en_US.UTF-8),但还是无法解决。