很多时候我们写完代码只关心功能的问题,却忽略一些细节的小问题,今天我给大家分享一个禁止用户直接访问模板的问题
一般普通用户是不会做这种事情的,但万一别个也是做程序的人,就有可能知道你模板路径的情况下直接访问你的模板,例如:后台的这样一个模块
别人就可以通过http://你的域名/theme/backend/menu/index.html 而查看你的模板文件,不须要任何验证,然后像查看普通html源码那样查看到你的模板文件代码
不管是什么框架,都有可以存在这样的问题,那么通过哪些方法可以避免这些问题呢,下面给大家分享几点办法,部分内容来自互联网收集
1、在文件夹下面用.htaccess文件(apache)配置限定
<FilesMatch ".(html|php|exe)$"> order allow,deny deny from all </FilesMatch>
就上面的这种情况就在theme下面创建.htaccess文件加入上面的内容即可
当然你可以在具体的html模板所在访目录,例如\theme\backend\menu\里面添加.htaccess文件加入上面的代码,但这样写要在每一个模板里面加,显示有得麻烦,所以我就直接在最上层模板目录里面统一加了,上面的的意思表示禁止访问以html、php、exe结尾的文件,当然你不能禁止所有,因为图片跟css是须要能访问的
2、配置.htaccess文件
还可以通过另外的一种配置方式RewriteRule来达到目的
注意:此时的.htaccess文件是在根目录里面配置,配置内容例如:
<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule theme/(.*).(html)$ – [F] </IfModule<
关键代码RewriteRule theme/(.*).(html)$ – [F],表示禁止访问theme下面的所有.html文件
3、调整目录位置
把模板或不能让用户直接访问的文件放到WEB目录外面
你们下载的thinkphp5.x版本可以看到,里面有一个public文件夹,默认入口文件就是放到这个文件夹(index.php)里面,因此很多用户习惯配置文件根目录在上级目录,这种情况你访问网站就是这样访问的:http://你的域名/public/index.php,这路径明显多了一个public,你看着肯定很不舒服吧,因此正确的配置网站根目录应该指定到public文件夹
这样你就可以直接通过你的域名直接访问了http://你的域名/index.php
请立即点击咨询我们或拨打咨询热线: 18031152740,我们会详细为你一一解答你心中的疑难。业务经理在线