以前我写过很多关于禁止执行php的文件,今天在查看一站长博客时发现它发了一文章就按要求设置之后所有目录的所有目录都不能执行了,所以我就来研究了一下,下面是解决办法.
我们禁止整个站点不能执行php文件,代码如下:
- # location ~ ^/.*\.(php|php5)$
- # {
- # fastcgi_pass 127.0.0.1:9000;
- # fastcgi_index index.php;
- # include fcgi.conf;
- # deny all;
- # }
配置文件中加上这行!如果需要指定某个目录的话,在第一行location ~^/(目录|目录1)\.(php|php5)$有多个目录的时候可用|分开,禁止单目录,代码如下:
- location ~ /attachments/.*.(php|php5)?$ {
- deny all;
- }
-
-
-
- location ~ /(attachments|upload)/.*.(php|php5)?$ {
- deny all;
- }
经测试貌似没用?会把目录内其他文件都屏蔽不能访问。比如upload里面的图片都不能访问了 这个是什么问题呢,再仔细看了一下发现原来是少了一个^号,太粗心了。
解决办法,禁止单目录,代码如下:
- location ~^ /attachments/.*.(php|php5)?$ {
- deny all;
- }
-
-
-
- location ~^ /(attachments|upload)/.*.(php|php5)?$ {
- deny all;
- }
这样就搞定了. |