lnmp1.7 laravel 伪静态 403
本帖最后由 feifeiaini1 于 2021-5-13 12:18 编辑server
{
listen 80;
#listen [::]:80;
server_name www.laravel.me;
index index.html index.php;
root/home/wwwroot/www.laravel.me/public;
# Deny access to PHP files in specific directory
#location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }
include enable-php.conf;
include rewrite/laravel.conf;
#error_page 404 /404.html;
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
location ~ /.well-known {
allow all;
}
location ~ /\.
{
deny all;
}
access_log/home/wwwlogs/www.laravel.me.log;
}
伪静态可以正常使用,伪静态路由 www.laravel.me/news如果 /home/wwwroot/www.laravel.me/public这个目录下面 没有news这个目录的时候可以正常。
如果 有 news 这个目录的情况下就会提示 403 Forbidden,一旦路由地址 在 public 下面存在就会出错。
public 下面存在相同文件夹名称时nginx日志
"GET /news/ HTTP/1.1" 403 548 "-" "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Mobile Safari/537.36"
不存在时日志
"GET /news/ HTTP/1.1" 200 549 "http://www.laravel.me/index.php" "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Mobile Safari/537.36"
本地使用的其他环境就没这个情况,服务器使用的是 lnmp1.7 就有这个情况。是不是哪里还需要设置什么?
licess 发表于 2021-5-14 09:39
这是官网上提供的伪静态,上面写的很明确,先检查是否有news文件,再检查是否有news目录,最后才给larav ...
明白,非常感谢您的回答。
目前在nginx加了一个配置参数,把这个问题解决了。感谢。 laravel框架的肯定是要指定网站目录到public目录
你public目录下有news目录肯定就直接访问news目录了,你可以自己去看laravel官网提供的伪静态规则,既然是访问的news目录,目录下没index文件或目录权限有问题肯定就会报403错误代码 本帖最后由 feifeiaini1 于 2021-5-13 17:24 编辑
licess 发表于 2021-5-13 15:51
laravel框架的肯定是要指定网站目录到public目录
你public目录下有news目录肯定就直接访问news目录了,你可 ...
我配置贴出来了,是指定的public目录,public下放了很多静态文件,目前 public 下面 有一个 news 这个目录,这个目录放了很多js和css文件。 这里是没有错的
当我路由规则定义为 www.laravel.me/news这个时候,意思是 路由规则 news 和 public 下面的 news 冲突了。 就会出现403 这个问题。 相当于是在定义路由规则的时候,就要避开和 public 下面目录名冲突的情况,不然就会403。如果路由定义的路由规则路径名和public下面的文件夹名称没有冲突,就一切正常。
本地使用 phpstudy 没有这个问题。
feifeiaini1 发表于 2021-5-13 17:21
我配置贴出来了,是指定的public目录,public下放了很多静态文件,目前 public 下面 有一个 news 这个目 ...
location / {
try_files $uri $uri/ /index.php?$query_string;
}
这是官网上提供的伪静态,上面写的很明确,先检查是否有news文件,再检查是否有news目录,最后才给laravel
2楼也已经给你说了“既然是访问的news目录,目录下没index文件或目录权限有问题肯定就会报403错误代码”
页:
[1]