VPS侦探论坛

 找回密码
 注册
查看: 3432|回复: 4

lnmp1.7 laravel 伪静态 403

[复制链接]
发表于 2021-5-13 12:16:50 | 显示全部楼层 |阅读模式

本帖最后由 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日志
[13/May/2021:12:15:55 +0800] "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"
不存在时日志
[13/May/2021:11:25:19 +0800] "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 就有这个情况。是不是哪里还需要设置什么?


美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
 楼主| 发表于 2021-5-14 10:59:44 | 显示全部楼层


licess 发表于 2021-5-14 09:39
这是官网上提供的伪静态,上面写的很明确,先检查是否有news文件,再检查是否有news目录,最后才给larav ...

明白,非常感谢您的回答。
目前在nginx加了一个配置参数,把这个问题解决了。感谢。
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
发表于 2021-5-13 15:51:25 | 显示全部楼层

laravel框架的肯定是要指定网站目录到public目录
你public目录下有news目录肯定就直接访问news目录了,你可以自己去看laravel官网提供的伪静态规则,既然是访问的news目录,目录下没index文件或目录权限有问题肯定就会报403错误代码
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
 楼主| 发表于 2021-5-13 17:21:24 | 显示全部楼层



本帖最后由 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 没有这个问题。
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
发表于 2021-5-14 09:39:55 | 显示全部楼层

feifeiaini1 发表于 2021-5-13 17:21
我配置贴出来了,是指定的public目录,  public下放了很多静态文件,目前 public 下面 有一个 news 这个目 ...
  1. location / {
  2.     try_files $uri $uri/ /index.php?$query_string;
  3. }
复制代码

这是官网上提供的伪静态,上面写的很明确,先检查是否有news文件,再检查是否有news目录,最后才给laravel
2楼也已经给你说了“既然是访问的news目录,目录下没index文件或目录权限有问题肯定就会报403错误代码”

军哥运维代购:http://shop63846532.taobao.com/

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|VPS侦探 ( 鲁ICP备16040043号-1 )

GMT+8, 2024-9-21 00:43 , Processed in 0.026467 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表