很多時候我們寫完代碼只關心功能的問題,卻忽略一些細節的小問題,今天我給大家分享一個禁止用戶直接訪問模板的問題
一般普通用戶是不會做這種事情的,但萬一別個也是做程序的人,就有可能知道你模板路徑的情況下直接訪問你的模板,例如:后臺的這樣一個模塊
別人就可以通過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,我們會詳細為你一一解答你心中的疑難。業務經理在線