当前位置:论坛首页 > Linux面板 > 讨论

【已解决】宝塔为什么nginx配置无效?

发表在 Linux面板2022-5-15 14:34 [复制链接] 10 6012

    #禁止访问的文件或目录
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)$
    {
        return 404;
    }

    location ~* ^/(uploads|upload)/.*\.(php)$
    {
    deny all;
    }


使用道具 举报 只看该作者 回复
发表于 2022-5-19 21:15:55 | 显示全部楼层
研究了一下,配置里面,多目录这样写就可以了, 目录填: /(目录1/|目录2/|目录3/)
每个目录后面要加/,最后生成的代码:
    #BEGIN_DENY_禁止PHP
    location ~* ^/(目录1/目录|2/|目录3/).*.(php|jsp)$ {
        deny all;
    }

测试有效!
    #END_DENY_禁止PHP
使用道具 举报 回复 支持 反对
发表于 2022-5-15 15:18:21 | 显示全部楼层
截图看下您的完整的配置文件,还有伪静态,关键信息打码即可
使用道具 举报 回复 支持 反对
发表于 2022-5-15 18:06:24 | 显示全部楼层
server
{
    listen 80;
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
    listen [::]:80;
    server_name www.abc.com abc.com new.abc.com;
    index index.php index.html index.htm default.php default.htm default.html;
    root /www/wwwroot/new.abc.com;
   
    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    ssl_certificate    /www/server/panel/vhost/cert/new.abc.com/fullchain.pem;
    ssl_certificate_key    /www/server/panel/vhost/cert/new.abc.com/privkey.pem;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    add_header Strict-Transport-Security "max-age=31536000";
    error_page 497  https://$host$request_uri;

    #SSL-END
   
    #ERROR-PAGE-START  错误页配置,可以注释、删除或修改
    #error_page 404 /404.html;
    #error_page 502 /502.html;
    #ERROR-PAGE-END
   
    #PHP-INFO-START  PHP引用配置,可以注释或修改
    include enable-php-54.conf;
    #PHP-INFO-END
   
    #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
    include /www/server/panel/vhost/rewrite/new.abc.com.conf;
    #REWRITE-END
   
    #禁止访问的文件或目录
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)$
    {
        return 404;
    }
   
    location ~* ^/(uploads|upload)/.*\.(php)$
    {
    deny all;
    }
   
    #一键申请SSL证书验证目录相关设置
    location ~ \.well-known{
        allow all;
    }
   
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
        error_log off;
        access_log /dev/null;
    }
   
    location ~ .*\.(js|css)?$
    {
        expires      12h;
        error_log off;
        access_log /dev/null;
    }
    access_log  /www/wwwlogs/new.abc.com.log;
    error_log  /www/wwwlogs/new.abc.com.error.log;
}
使用道具 举报 回复 支持 反对
发表于 2022-5-15 18:07:41 | 显示全部楼层
伪静态:

rewrite "^/list-([0-9]+)\.html$" /plus/list.php?tid=$1 last;
rewrite "^/list-([0-9]+)-([0-9]+)-([0-9]+)\.html$" /plus/list.php?tid=$1&totalresult=$2&PageNo=$3 last;
rewrite "^/view-([0-9]+)-1\.html$" /plus/view.php?arcID=$1 last;
rewrite "^/view-([0-9]+)-([0-9]+)\.html$" /plus/view.php?aid=$1&pageno=$2 last;
rewrite "^/plus/list-([0-9]+)\.html$" /plus/list.php?tid=$1 last;
rewrite "^/plus/list-([0-9]+)-([0-9]+)-([0-9]+)\.html$" /plus/list.php?tid=$1&totalresult=$2&PageNo=$3 last;
rewrite "^/plus/view-([0-9]+)-1\.html$" /plus/view.php?arcID=$1 last;
rewrite "^/plus/view-([0-9]+)-([0-9]+)\.html$" /plus/view.php?aid=$1&pageno=$2 last;
rewrite "^/tags.html$" /tags.php last;
rewrite "^/tag-([0-9]+)-([0-9]+)\.html$" /tags.php?/$1/$2/ last;
使用道具 举报 回复 支持 反对
发表于 2022-5-15 18:33:54 | 显示全部楼层
wxall 发表于 2022-5-15 18:06
server
{
    listen 80;
  1.     location ~* ^/(uploads|upload)/.*\.(php)$
  2.     {
  3.     deny all;
  4.     }
复制代码

这段代码放到这段代码前面
  1. location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)$
  2.     {
  3.         return 404;
  4.     }
复制代码
使用道具 举报 回复 支持 反对
发表于 2022-5-16 14:49:24 | 显示全部楼层
谢谢指点,个人建议,可将某目录禁止运行php的功能,加入宝塔面板。
使用道具 举报 回复 支持 反对
发表于 2022-5-16 16:39:04 | 显示全部楼层
按你的方法在BT 7.9.0免费版中测试了一下,依然无效。
使用道具 举报 回复 支持 反对
发表于 2022-5-17 22:18:44 | 显示全部楼层
将目录分开写,测试有效,而网上介绍用"()"与"| "分割目录正则表达式写法无效.

代码如下:

#禁止访问的文件或目录
   
    location /uploads/ {
      location ~ .*\.(php|php3|php5)?$ {
      return 404;
      }
    }
   
    location /html/ {
      location ~ .*\.(php|php3|php5)?$ {
      return 404;
      }
    }
   
   
    location /skin/ {
      location ~ .*\.(php|php3|php5)?$ {
      return 404;
      }
    }   
   
    location /template/ {
      location ~ .*\.(php|php3|php5)?$ {
      return 404;
      }
    }

    location /images/ {
      location ~ .*\.(php|php3|php5)?$ {
      return 404;
      }
    }

与代码放置的上下位置无关.
使用道具 举报 回复 支持 反对
发表于 2022-5-19 19:28:01 | 显示全部楼层
宝塔里面早有了这个功能,一直没有发现,根本不作手工写代码,直接配目录就行了.

网上多目录配置的各种教程用(目录1|目录2)是误人子弟,这是宝塔直接配目录后的代码
location ~* ^.idea|Public|Template|plugins.*.(php|jsp)$ {
        deny all;
    }
使用道具 举报 回复 支持 反对
发表于 2022-5-19 20:43:09 | 显示全部楼层
上面的代码 还是不行,会禁止访问目录下的所有文件了.还是用宝塔功能.但要一个个目录来配置,代码:
    #BEGIN_DENY_禁止.idea
    location ~* ^/.idea/.*.(php|jsp)$ {
        deny all;
    }
    #END_DENY_禁止.idea

    #BEGIN_DENY_禁止plugins
    location ~* ^/plugins/.*.(php|jsp)$ {
        deny all;
    }
    #END_DENY_禁止plugins   

#BEGIN_DENY_禁止Template
    location ~* ^/Template/.*.(php|jsp)$ {
        deny all;
    }
    #END_DENY_禁止Template

    #BEGIN_DENY_禁止public
    location ~* ^/public/.*.(php|jsp)$ {
        deny all;
    }
    #END_DENY_禁止public
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

企业版年付运维跟进群

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急问题处理

论坛响应时间:10分钟

问题处理方式:1对1处理(优先)

工作时间:白班:9:00 - 18:00

工作时间:晚班:18:00 - 24:00

立即付费处理
快速回复 返回顶部 返回列表