当我尝试从浏览器测试下载链接后,将一些文件上传到public_html
嵌套目录中,返回404 Not Found
pwd
输出命令:
/home/pishguy/public_html/audio/quran/01.FATİHA - AYET AYET/DÜŞÜK KALİTE
[root@server DÜŞÜK KALİTE]#
ls
命令结果:
[root@server DÜŞÜK KALİTE]# ls -a -l
total 68
drwxr-xr-x. 2 pishguy pishguy 29 Mar 31 10:11 .
drwxr-xr-x. 3 pishguy pishguy 4096 Mar 31 10:11 ..
-rw-r--r--. 1 pishguy pishguy 64814 Nov 24 12:21 FATİHA 001.mp3
正如你所见,我FATİHA 001.mp3
在这条路径上有一个:/home/pishguy/public_html/audio/quran/01.FATİHA - AYET AYET/DÜŞÜK KALİTE
。
完整路径:
/home/pishguy/public_html/audio/quran/01.FATİHA - AYET AYET/DÜŞÜK KALİTE/FATİHA 001.mp3
那么这个直接链接应该可以正常工作:
www.pishguy.ir/audio/quran/01.FATİHA - AYET AYET/DÜŞÜK KALİTE/FATİHA 001.mp3
或者这个编码的 URL 链接:
http://www.pishguy.ir/audio/quran/01.FAT%C4%B0HA%20-%20AYET%20AYET/D%C3%9C%C5%9E%C3%9CK%20KAL%C4%B0TE/FAT%C4%B0HA%20001.mp3
但服务器返回此页面:
Not Found
The requested URL was not found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
提示:
我应该有这个路径和这个目录,我无法更改它们,例如文件名、文件路径或文件目录名
答案1
该特定 URL 返回 404:
http://www.pishguy.ir/audio/quran/01.FAT%C4%B0HA%20-%20AYET%20AYET/D%C3%9C%C5%9E%C3%9CK%20KAL%C4%B0TE/FAT%C4%B0HA%20001.mp3
但是,父目录是可搜索的:
http://www.pishguy.ir/audio/quran/01.FAT%c4%b0HA%20-%20AYET%20AYET/D%c3%9c%c5%9e%c3%9cK%20KAL%c4%b0TE/
从该 URL 判断,目录中没有任何内容。通常这是一个权限问题,但乍一看权限看起来没有问题(0755
对于.
和..
目录,0644
对于文件本身)。另一个可能的解释是 SELinux 拒绝 apache/httpd 访问该文件。SELinux 日志可以确定这一点,更新文件的上下文应该可以解决这个问题:
# chcon -t httpd_sys_content_t /home/pishguy/public_html/audio/quran/01.FATİHA - AYET AYET/DÜŞÜK KALİTE/FATİHA 001.mp3
(-Z
传递给的选项ls
还应向您显示相关文件的相关 SELinux 属性,a la ls -lahZ .
)
其他目录中还存在可见/可下载的文件,例如:
http://www.pishguy.ir/audio/quran/05.MA%c4%b0DE/MAI%cc%87DE%20000.mp3
我会将其中一个工作位置的权限和 SELinux 位与当前不起作用的位置进行比较,然后从那里进一步排除故障。