让PHP支持解析非php扩展名的文件


平常编写PHP脚本,扩展名存储为.php即可。php解释器就知道这个文件是需要它来解释执行的。有些时候,比较特殊的场景,也许我们想伪装一下我们的文件,让外人看起来这个页面不是由php生成的。比如我们把文件伪装成.html。这样如何做到呢?

 

Apache:

<IfModule fcgid_module>
Include conf/extra/httpd-fcgid.conf
FcgidInitialEnv PHPRC "D:/phpStudy/php55n"
AddHandler fcgid-script .php .html
FcgidWrapper "D:/phpStudy/php55n/php-cgi.exe" .php
FcgidWrapper "D:/phpStudy/php55n/php-cgi.exe" .html
</IfModule>

如代码中所见,仿照原来的设置,增加.html的即可。

Nginx:

在虚拟主机配置中复制一份php的配置,改写如下:

location ~ [^/]\.html(/|$){
            try_files $uri =404;
            fastcgi_pass  unix:/tmp/php-cgi-72.sock;
            fastcgi_index index.php;
            include fastcgi.conf;
            include pathinfo.conf;
        }

or

location ~ [^/]\.(php|html)(/|$)
        {
            try_files $uri =404;
            fastcgi_pass  unix:/tmp/php-cgi-72.sock;
            fastcgi_index index.php;
            include fastcgi.conf;
			include pathinfo.conf;
        }

php-fpm.conf也需要修改如下:

[www]
...
security.limit_extensions = .php .php3 .php4 .php5 .php7 .html

如果没有这个配置,在[www]段下增加新的即可。

 

别忘了重启服务。

Archives