我在/ home / forge / laravel58 / public / files中放置了2个txt文件;
我想在进入site/files
我尝试过
location /files {
#auth_basic "Restricted";
#auth_basic_user_file /home/forge/laravel58/.htpasswd;
alias /home/forge/laravel58/public/files;
autoindex on;
}
转到:site/files
,然后查看
403禁止的Nginx
答案 0 :(得分:6)
后退斜杠对于autoindex
来说是必不可少的,它应该是:
location /files/ {
alias /home/forge/laravel58/public/files/;
autoindex on;
}
接下来,检查nginx是否对路径中的每个文件夹具有执行权限(+x
。
之后,从该文件夹中删除所有索引文件,默认情况下为index.html
。
最后,检查您的location /
指令是否尝试尝试目录:
location / {
...
try_files $uri $uri/ ...;
^^^^^
}
答案 1 :(得分:3)
关于尾部斜杠是“ autoindex
的基本要素”的另一个答案是100%不正确:尽管实际上不是首选,但此处不需要尾部斜杠,因为否则您可以访问常规文件和目录,例如/filesSECRET
,从/files/
到更高级别,这样就可以解决潜在的安全问题。
在您的情况下,/files
是location
以及alias
的后缀,最好使用root
而不是{ {1}}。参见http://nginx.org/r/alias和http://nginx.org/r/root。
为使http://nginx.org/r/autoindex工作,运行nginx进程的UNIX用户必须对路径的最终目录具有“读取”许可权,并且对每个目录都具有“执行”许可权路径的一部分。
您可以使用stat(1)
或alias
来检查权限,并使用chmod(1)来更改权限。您可能希望在ls -l
上使用o+rx
,并在导致上述目录的每个目录中使用/home/forge/laravel58/public/files
。
答案 2 :(得分:1)
为什么要使用nginx,可以使用符号链接
用法:ln -s /path/to/file /path/to/symlink
ln -s /home/forge/laravel58/public/files site/files
(具有完整路径)
答案 3 :(得分:1)
server {
listen 80;
listen 443 ssl;
server_name www.old-name.com;
return 301 $scheme://www.new-name.com$request_uri;
}