标签归档:nginx

nginx+php-fpm支持pathinfo

nginx配置

nginx站点配置文件如下:

server {
        listen       80;
        server_name  devkang.com;
        root  /www/devkang.com/;
        location / {
            try_files $uri $uri/ /index.php$uri?$args;
            index  index.html index.htm default.html default.htm index.php default.php;
        }
        autoindex off;
        include advanced_settings.conf;
        location ~ ^.+.php {
            fastcgi_pass   bakend; ##此处填写本机PHP的地址跟端口,根据各自情况进行设置。
            fastcgi_index  index.php;
            fastcgi_split_path_info ^((?U).+.php)(/?.+)$;
            fastcgi_param  PATH_INFO $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED $document_root$fastcgi_path_info;
            include        fastcgi.conf;
        }
        }
}

创建配置文件以后重启nginx。

测试

在目录下创建index.php,编辑如下代码

<?php
print_r($_SERVER);

访问地址:http://localhost/index.php/pathino或者http://localhost/pathinfo

都应该打印变量PHP_SELF的值为pathinfo即为成功。(pathinfo与url路径中的pathinfo一致即可!)

本文已经被查看625次

网站禁止访问.htaccess文件

如果你的服务器是采用lanmp环境方案架构,也就是前端采用nginx,后端是采用apache+php的访问形式进行部署,在你的web程序根目录中如果有.htaccess文件,很有可能直接通过你的站点,

例如:http://www.xxxxx.com/.htaccess的访问形式直接获取到你的配置信息,里面会包含相对隐私的一些信息,会对你的网站造成一定的损失。

那么我们需要在nginx站点配置文件中增加如下规则,禁止访问.htaccess文件

location ~ /\.hta {
    deny all;
}

当用户访问.htaccess文件会直接返回403错误提示

本文已经被查看523次

网站禁止访问.git、.svn等目录

如果你用过Git、SVN等代码版本控制工具的话,那肯定会知道,如果你需要拉去最新的代码到本地时,会自动生成一个.git或者.svn文件夹,里面包含一些项目相关的信息,如果在部署项目是,把这些文件公开暴露在外网中,可能会有一些安全隐患,所以我们通常会想一些方法来禁止访问这些文件夹。

Apache服务器中,开启Rewrite模块后,可以使用.htaccess文件来控制文件及文件夹的访问,根据这个原理,我们可以使用配置.htaccess文件禁止访问.git、.svn等目录。打开.htaccess文件,添加如下代码:

RewriteEngine on
RewriteRule ^.git - [F,L]

在nginx服务器中

location ^~ /.git {
    deny all;
}


这样,即可禁止.git文件夹的访问,对应,如果不想公开.svn文件夹的访问,则将.git换成对应的.svn即可。当然,如果你还有一些日志文件夹、隐秘文件夹,也可以通过这样的方式来实现文件夹访问权限的控制。

本文已经被查看566次