先來看看什么是.htaccess文件

可以看到能實現很多功能 其他的功能先不管 我們只需要知道.htaccess文件能夠設置服務器解析文件的格式 比如 設置 匹配到ddd 就用php的格式來解析
我這里使用的使Apache服務器 先下了一個phpstdy的集成環境

Apache要使.htaccess文件生效要在httpd.config 配置兩個地方(百度搜的)
Options FollowSymLinks
AllowOverride None
改為:
Options FollowSymLinks
AllowOverride All
把LoadModule rewrite_module modules/mod_rewrite.so前面的注釋符號#刪除
先試試不配置 直接寫.htaccess文件 這段代碼的意思使匹配到文件名中含有dd的字符 就以php形式去解析

保存到根目錄下 創建一個dd.txt文件

寫一個彈窗的

無語 直接就生效了 看看配置

LoadModule rewrite_module modules/mod_rewrite.so 默認開的 Options FollowSymLinks沒有發現有這個,不知道是不是集成環境的原因

既然這樣的話 直接安裝原始Apache試驗
搞了半天才弄好php和Apache的鏈接 一步出錯 就問題多多

開始實驗 同樣傳.htaccess文件 創建dd.txt 沒有解析

看看配置 默認關閉的 刪除注釋符在試

一樣沒解析 再改一下 Options FollowSymLinks AllowOverride None參數 同樣沒發現有
百度的這兩種方法沒用 修改了apache服務就會啟動不了

直接替換所有的

解析成功

我又 將LoadModule rewrite_module modules/mod_rewrite.so 的注釋加了上去發現同樣解析 也就是說和 LoadModule rewrite_module modules/mod_rewrite.so 沒多大關系
總結:
1..htaccess文件使用要開啟apache httpd.config AllowOverride All 而且要重啟服務才能生效 和LoadModule rewrite_module modules/mod_rewrite.so 沒關系
2.集成環境簡單但是不安全所有的安全配置都是開啟的,原始平台安裝配置稍復雜但是安全系數高配置都是默認關閉的,而且一般集成環境拿到的shell基本上是最高權限
3.上傳使用.htaccess文件如果碰到是黑名單處理並且是集成環境搭建的環境那就又很大的可能繞過驗證getshell,不是的話就只能憑運氣看站長是否開啟了AllowOverride All
