Nginx如何直接访问index.php时返回404

时间:2014-10-08 17:41:37

标签: php nginx

出于安全考虑,我试图隐藏我的Web应用程序的几乎所有指纹信息。最重要的是向任何访问者隐藏PHP。所以我尝试修改我的Nginx配置文件。配置将显示如下。

location / {
        root   /data/site/public;

        index  index.html index.htm index.php;
        try_files $uri /index.php;

        location /index.php {
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            include fastcgi.conf;
        }
    }

通过这种方式,我成功隐藏了index.php的URL。但是,黑客也可以使用http://example.com/index.php之类的某些网址直接访问我的网站,这表明我的网站是由PHP编写的。有时它可能很危险。 所以,我第二次修改Nginx的配置,直接访问404时渴望index.php,看起来像

location / {
        root   /data/site/public;

        if ( $request_uri ~ /index\.php ) {
            return 404;
        }

        index  index.html index.htm index.php;
        try_files $uri /index.php;

        location /index.php {
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            include fastcgi.conf;
        }
    }

然而......,似乎Nginx与前一个没什么不同。

谁能告诉我原因?或任何其他解决方案......

0 个答案:

没有答案