当前位置:首页 > linux教程 > 列表

linux中nginx下禁止某目录执行php例子

发布:smiling 来源: PHP粉丝网  添加日期:2014-10-16 11:19:38 浏览: 评论:0 

以前我写过很多关于禁止执行php的文件,今天在查看一站长博客时发现它发了一文章就按要求设置之后所有目录的所有目录都不能执行了,所以我就来研究了一下,下面是解决办法.

我们禁止整个站点不能执行php文件,代码如下:

  1. # location ~ ^/.*\.(php|php5)$ 
  2. # { 
  3. # fastcgi_pass 127.0.0.1:9000; 
  4. # fastcgi_index index.php; 
  5. # include fcgi.conf; 
  6. # deny all
  7. # } 

配置文件中加上这行!如果需要指定某个目录的话,在第一行location ~^/(目录|目录1)\.(php|php5)$有多个目录的时候可用|分开,禁止单目录,代码如下:

  1. location ~ /attachments/.*.(php|php5)?$ { 
  2. deny all
  3.  
  4. --禁止多目录: 
  5.  
  6. location ~ /(attachments|upload)/.*.(php|php5)?$ { 
  7. deny all

经测试貌似没用?会把目录内其他文件都屏蔽不能访问。比如upload里面的图片都不能访问了 这个是什么问题呢,再仔细看了一下发现原来是少了一个^号,太粗心了。

解决办法,禁止单目录,代码如下:

  1. location ~^ /attachments/.*.(php|php5)?$ { 
  2. deny all
  3.  
  4. --禁止多目录: 
  5.  
  6. location ~^ /(attachments|upload)/.*.(php|php5)?$ { 
  7. deny all;  --phpfensi.com 

这样就搞定了.

Tags: linux禁止执行 nginx执行php

分享到: