Apache配置redirect后Omeka S同级图片文件夹访问404报错如何解决
问题核心原因
你当前Apache的80端口和443端口虚拟主机的DocumentRoot都指向了/var/www/html/omeka-s目录,而你的素材图片文件夹存放在和omeka-s同级的路径下,不在站点根目录范围内,Apache收到访问/images/xxx的请求时只会在/var/www/html/omeka-s下查找对应资源,自然返回404。
排查与解决步骤
步骤1:确认素材目录实际路径
先执行命令确认images文件夹的绝对路径,避免路径拼写错误:
ls /var/www/html/确认输出中存在
images目录,且目录内的文件权限为Apache运行用户(通常是www-data)可读。步骤2:修改Apache虚拟主机配置
分别修改
000-default.conf和default-ssl.conf两个配置文件,在对应VirtualHost块内添加Alias规则,将/images路径映射到实际的素材目录,同时开放目录访问权限:000-default.conf修改后参考:
<VirtualHost *:80> ServerName myredirect.it Redirect / https://myredirect.it/ ServerAdmin webmaster@localhost DocumentRoot /var/www/html/omeka-s # 新增以下内容 Alias "/images" "/var/www/html/images" <Directory /var/www/html/images> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> </VirtualHost>default-ssl.conf修改后参考:
<IfModule mod_ssl.c> <VirtualHost _default_:443> ServerName myredirect.it ServerAdmin webmaster@localhost DocumentRoot /var/www/html/omeka-s # 新增以下内容 Alias "/images" "/var/www/html/images" <Directory /var/www/html/images> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>步骤3:校验并重启Apache生效
先执行命令校验配置文件语法是否正确:
apache2ctl configtest提示
Syntax OK后重启Apache服务:systemctl restart apache2步骤4:排查重定向域名匹配问题
你wget日志中访问
http://mysite.it后跳转到了https://myredirect(缺少.it后缀),需确认你访问的图片域名和ServerName配置的myredirect.it一致,避免域名不匹配导致访问到其他虚拟主机。
额外校验项
如果配置后仍然返回404,检查Omeka S根目录下的.htaccess文件是否有重写规则拦截了/images路径的访问,可临时重命名.htaccess文件测试访问是否正常。
内容的提问来源于stack exchange,提问作者Lara M.
相关产品推荐
相关产品推荐

