# 偽靜態(url重寫)
## apache 偽靜態
在public下新建.htaccess文件,復制以下代碼。注意:public目錄下是自帶該文件的。
```
<pre class="calibre16">```
<span class="token"><</span>IfModule mod_rewrite<span class="token1">.</span>c<span class="token">></span>
Options <span class="token">+</span>FollowSymlinks <span class="token">-</span>Multiviews
RewriteEngine On
RewriteCond <span class="token">%</span><span class="token1">{</span>REQUEST_FILENAME<span class="token1">}</span> <span class="token">!</span><span class="token">-</span>d
RewriteCond <span class="token">%</span><span class="token1">{</span>REQUEST_FILENAME<span class="token1">}</span> <span class="token">!</span><span class="token">-</span>f
RewriteRule <span class="token">^</span><span class="token1">(</span><span class="token1">.</span><span class="token">*</span><span class="token1">)</span>$ index<span class="token1">.</span>php <span class="token1">[</span>L<span class="token1">,</span>E<span class="token">=</span>PATH_INFO<span class="token1">:</span>$<span class="token3">1</span><span class="token1">]</span>
<span class="token"><</span><span class="token">/</span>IfModule<span class="token">></span>
```
```
## nginx 偽靜態 參考
1. 寶塔服務器參考[Linux下寶塔安裝](LinuxXia%20Bao%20Ta%20An%20Zhuang.html)
找到nginx網站配置文件,打開后在合適位置增加以下配置
```
<pre class="calibre16">```
#偽靜態配置,重寫規則引用<span class="token1">,</span>修改后將導致偽靜態規則失效
location <span class="token">/</span> <span class="token1">{</span>
<span class="token2">if</span> <span class="token1">(</span><span class="token">!</span><span class="token">-</span>e $request_filename<span class="token1">)</span><span class="token1">{</span>
rewrite <span class="token">^</span><span class="token1">(</span><span class="token1">.</span><span class="token">*</span><span class="token1">)</span>$ <span class="token">/</span>index<span class="token1">.</span>php<span class="token">?</span>s<span class="token">=</span>$<span class="token3">1</span> last<span class="token1">;</span> <span class="token2">break</span><span class="token1">;</span>
<span class="token1">}</span>
<span class="token1">}</span>
```
```
完整nginx配置參考
```
<pre class="calibre16">```
server
<span class="token1">{</span>
listen <span class="token3">80</span><span class="token1">;</span>
server_name <span class="token3">192.168</span><span class="token3">.0</span><span class="token3">.118</span><span class="token1">;</span>
index index<span class="token1">.</span>php index<span class="token1">.</span>html<span class="token1">;</span>
root <span class="token">/</span>www<span class="token">/</span>data<span class="token">/</span>HkCms<span class="token">/</span>public<span class="token1">;</span>
#PHP引用配置
location <span class="token">~</span> <span class="token1">[</span><span class="token">^</span><span class="token">/</span><span class="token1">]</span>\<span class="token1">.</span><span class="token6">php</span><span class="token1">(</span><span class="token">/</span><span class="token">|</span>$<span class="token1">)</span>
<span class="token1">{</span>
try_files $uri <span class="token">=</span><span class="token3">404</span><span class="token1">;</span>
# Socket管道方式
# fastcgi_pass unix<span class="token1">:</span><span class="token">/</span>tmp<span class="token">/</span>php<span class="token">-</span>cgi<span class="token">-</span><span class="token3">71.</span>sock<span class="token1">;</span>
# tcpip方式<span class="token1">,</span> 端口根據PHP<span class="token">-</span>FPM配置文件
fastcgi_pass <span class="token3">127.0</span><span class="token3">.0</span><span class="token3">.1</span><span class="token1">:</span><span class="token3">10711</span><span class="token1">;</span>
fastcgi_split_path_info <span class="token">^</span><span class="token1">(</span><span class="token1">(</span><span class="token">?</span>U<span class="token1">)</span><span class="token1">.</span><span class="token">+</span>\<span class="token1">.</span>php<span class="token1">)</span><span class="token1">(</span><span class="token">/</span><span class="token">?</span><span class="token1">.</span><span class="token">+</span><span class="token1">)</span>$<span class="token1">;</span>
fastcgi_index index<span class="token1">.</span>php<span class="token1">;</span>
# 引用fastcgi_param參數
include fastcgi<span class="token1">.</span>conf<span class="token1">;</span>
set $real_script_name $fastcgi_script_name<span class="token1">;</span>
<span class="token2">if</span> <span class="token1">(</span>$fastcgi_script_name <span class="token">~</span> <span class="token4">"^(.+?\.php)(/.+)$"</span><span class="token1">)</span> <span class="token1">{</span>
set $real_script_name $<span class="token3">1</span><span class="token1">;</span>
set $path_info $<span class="token3">2</span><span class="token1">;</span>
<span class="token1">}</span>
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name<span class="token1">;</span>
fastcgi_param SCRIPT_NAME $real_script_name<span class="token1">;</span>
fastcgi_param PATH_INFO $path_info<span class="token1">;</span>
<span class="token1">}</span>
#偽靜態配置,重寫規則引用<span class="token1">,</span>修改后將導致偽靜態規則失效
location <span class="token">/</span> <span class="token1">{</span>
<span class="token2">if</span> <span class="token1">(</span><span class="token">!</span><span class="token">-</span>e $request_filename<span class="token1">)</span><span class="token1">{</span>
rewrite <span class="token">^</span><span class="token1">(</span><span class="token1">.</span><span class="token">*</span><span class="token1">)</span>$ <span class="token">/</span>index<span class="token1">.</span>php<span class="token">?</span>s<span class="token">=</span>$<span class="token3">1</span> last<span class="token1">;</span> <span class="token2">break</span><span class="token1">;</span>
<span class="token1">}</span>
<span class="token1">}</span>
#禁止用戶上傳目錄下所有<span class="token1">.</span>php文件的訪問,提高安全性
location <span class="token">~</span> <span class="token">^</span><span class="token">/</span>uploads<span class="token">/</span><span class="token1">.</span><span class="token">*</span>\<span class="token1">.</span><span class="token1">(</span>php<span class="token">|</span>php5<span class="token1">)</span>$ <span class="token1">{</span>
deny all<span class="token1">;</span>
<span class="token1">}</span>
#禁止訪問的文件或目錄
location <span class="token">~</span> <span class="token">^</span><span class="token">/</span><span class="token1">(</span>\<span class="token1">.</span>user<span class="token1">.</span>ini<span class="token">|</span>\<span class="token1">.</span>htaccess<span class="token">|</span>\<span class="token1">.</span>git<span class="token">|</span>\<span class="token1">.</span>svn<span class="token">|</span>\<span class="token1">.</span>project<span class="token">|</span>LICENSE<span class="token">|</span>README<span class="token1">.</span>md<span class="token1">)</span>
<span class="token1">{</span>
<span class="token2">return</span> <span class="token3">404</span><span class="token1">;</span>
<span class="token1">}</span>
location <span class="token">~</span> <span class="token1">.</span><span class="token">*</span>\<span class="token1">.</span><span class="token1">(</span>gif<span class="token">|</span>jpg<span class="token">|</span>jpeg<span class="token">|</span>png<span class="token">|</span>bmp<span class="token">|</span>swf<span class="token1">)</span>$
<span class="token1">{</span>
expires <span class="token3">30</span>d<span class="token1">;</span>
error_log <span class="token">/</span>dev<span class="token">/</span><span class="token2">null</span><span class="token1">;</span>
access_log off<span class="token1">;</span>
<span class="token1">}</span>
location <span class="token">~</span> <span class="token1">.</span><span class="token">*</span>\<span class="token1">.</span><span class="token1">(</span>js<span class="token">|</span>css<span class="token1">)</span><span class="token">?</span>$
<span class="token1">{</span>
expires <span class="token3">12</span>h<span class="token1">;</span>
error_log <span class="token">/</span>dev<span class="token">/</span><span class="token2">null</span><span class="token1">;</span>
access_log off<span class="token1">;</span>
<span class="token1">}</span>
# 訪問日志
access_log <span class="token">/</span>www<span class="token">/</span>wwwlogs<span class="token">/</span><span class="token3">192.168</span><span class="token3">.0</span><span class="token3">.118</span><span class="token1">.</span>log<span class="token1">;</span>
# 錯誤日志
error_log <span class="token">/</span>www<span class="token">/</span>wwwlogs<span class="token">/</span><span class="token3">192.168</span><span class="token3">.0</span><span class="token3">.118</span><span class="token1">.</span>error<span class="token1">.</span>log<span class="token1">;</span>
<span class="token1">}</span>
```
```
## IIS參考
主要添加的內容
```
<pre class="calibre16">```
<span class="token"><</span>rewrite<span class="token">></span>
<span class="token"><</span>rules<span class="token">></span>
<span class="token"><</span>rule name<span class="token">=</span><span class="token4">"OrgPage"</span> stopProcessing<span class="token">=</span><span class="token4">"true"</span><span class="token">></span>
<span class="token"><</span>match url<span class="token">=</span><span class="token4">"^(.*)$"</span> <span class="token">/</span><span class="token">></span>
<span class="token"><</span>conditions logicalGrouping<span class="token">=</span><span class="token4">"MatchAll"</span><span class="token">></span>
<span class="token"><</span>add input<span class="token">=</span><span class="token4">"{HTTP_HOST}"</span> pattern<span class="token">=</span><span class="token4">"^(.*)$"</span> <span class="token">/</span><span class="token">></span>
<span class="token"><</span>add input<span class="token">=</span><span class="token4">"{REQUEST_FILENAME}"</span> matchType<span class="token">=</span><span class="token4">"IsFile"</span> negate<span class="token">=</span><span class="token4">"true"</span> <span class="token">/</span><span class="token">></span>
<span class="token"><</span>add input<span class="token">=</span><span class="token4">"{REQUEST_FILENAME}"</span> matchType<span class="token">=</span><span class="token4">"IsDirectory"</span> negate<span class="token">=</span><span class="token4">"true"</span> <span class="token">/</span><span class="token">></span>
<span class="token"><</span><span class="token">/</span>conditions<span class="token">></span>
<span class="token"><</span>action type<span class="token">=</span><span class="token4">"Rewrite"</span> url<span class="token">=</span><span class="token4">"index.php/{R:1}"</span> <span class="token">/</span><span class="token">></span>
<span class="token"><</span><span class="token">/</span>rule<span class="token">></span>
<span class="token"><</span><span class="token">/</span>rules<span class="token">></span>
<span class="token"><</span><span class="token">/</span>rewrite<span class="token">></span>
```
```
添加的位置
```
<pre class="calibre20">```
<span class="token"><</span><span class="token">?</span>xml version<span class="token">=</span><span class="token4">"1.0"</span> encoding<span class="token">=</span><span class="token4">"UTF-8"</span><span class="token">?</span><span class="token">></span>
<span class="token"><</span>configuration<span class="token">></span>
<span class="token"><</span>system<span class="token1">.</span>webServer<span class="token">></span>
<span class="token"><</span>rewrite<span class="token">></span>
<span class="token"><</span>rules<span class="token">></span>
<span class="token"><</span>rule name<span class="token">=</span><span class="token4">"OrgPage"</span> stopProcessing<span class="token">=</span><span class="token4">"true"</span><span class="token">></span>
<span class="token"><</span>match url<span class="token">=</span><span class="token4">"^(.*)$"</span> <span class="token">/</span><span class="token">></span>
<span class="token"><</span>conditions logicalGrouping<span class="token">=</span><span class="token4">"MatchAll"</span><span class="token">></span>
<span class="token"><</span>add input<span class="token">=</span><span class="token4">"{HTTP_HOST}"</span> pattern<span class="token">=</span><span class="token4">"^(.*)$"</span> <span class="token">/</span><span class="token">></span>
<span class="token"><</span>add input<span class="token">=</span><span class="token4">"{REQUEST_FILENAME}"</span> matchType<span class="token">=</span><span class="token4">"IsFile"</span> negate<span class="token">=</span><span class="token4">"true"</span> <span class="token">/</span><span class="token">></span>
<span class="token"><</span>add input<span class="token">=</span><span class="token4">"{REQUEST_FILENAME}"</span> matchType<span class="token">=</span><span class="token4">"IsDirectory"</span> negate<span class="token">=</span><span class="token4">"true"</span> <span class="token">/</span><span class="token">></span>
<span class="token"><</span><span class="token">/</span>conditions<span class="token">></span>
<span class="token"><</span>action type<span class="token">=</span><span class="token4">"Rewrite"</span> url<span class="token">=</span><span class="token4">"index.php/{R:1}"</span> <span class="token">/</span><span class="token">></span>
<span class="token"><</span><span class="token">/</span>rule<span class="token">></span>
<span class="token"><</span><span class="token">/</span>rules<span class="token">></span>
<span class="token"><</span><span class="token">/</span>rewrite<span class="token">></span>
<span class="token"><</span>handlers<span class="token">></span>
<span class="token"><</span><span class="token">/</span>handlers<span class="token">></span>
<span class="token"><</span><span class="token">/</span>system<span class="token1">.</span>webServer<span class="token">></span>
<span class="token"><</span><span class="token">/</span>configuration<span class="token">></span>
```
```
- 簡介
- 下載與安裝配置
- 下載
- 虛擬主機安裝
- 百度云虛擬主機
- 創業云虛擬主機
- Linux下寶塔安裝
- 寶塔一鍵部署
- Windows下寶塔安裝
- phpEnv下安裝
- phpStudy下安裝
- 偽靜態(url重寫)
- 安裝系統
- 調試模式與env文件
- 重新安裝與安裝文件說明
- 后臺使用幫助
- 后臺入口文件
- 首頁面板
- 配置中心
- 站點配置
- SEO設置
- SEO設置-靜態生成
- 文檔屬性
- 站點模塊
- V2.2.2版本 -
- V2.2.3版本 +
- 模型管理
- 欄目管理
- 字段類型與組件
- 前言
- 前端組件
- 驗證規則
- text 單行文本
- textarea 多行文本
- radio 單選
- checkbox 復選
- select 下拉列表
- selects下拉列表(多)
- selectpage 動態下拉
- editor編輯器
- image圖片
- images圖片(多)
- number數字
- date日期
- datetime日期和時間
- downfile文件上傳
- downfiles文件上傳(多)
- array 數組(鍵值對)
- 內容管理
- 自定義URL
- 多語言
- 界面多語言
- 內容多語言
- 多語言URL地址
- 附件管理
- 應用中心
- 標簽語法
- 標簽使用必讀
- 列表標簽
- content 內容列表標簽
- contentpage 內容列表分頁
- wfpage 瀑布流分頁
- filter 篩選標簽
- order 排序標簽
- 內容標簽
- guestbook 留言(表單)標簽(廢棄)
- form 表單標簽
- pre 上一篇標簽
- next 下一篇標簽
- prenext 上一篇下一篇(高級)標簽
- fileinfo 獲取附件信息(文件下載)
- 內容分頁
- raw 格式化編輯器文本(即將廢棄)
- 全局標簽
- seo 標簽
- channel 欄目標簽
- arcone 獲取單條文檔
- breadcrumb 面包屑導航標簽
- adv 站點模塊標簽
- date 日期格式化標簽
- substr字符(標題)截取標簽
- volist 循環標簽
- language 獲取語言列表標簽
- query 查詢數據庫內容
- include 導入模板文件標簽
- 原生PHP與php標簽
- map生成位置地圖
- thumb 生成縮略圖
- addons 插件檢測
- 標簽管理
- taglist標簽(獲取標簽列表)
- tagarclist根據標簽獲取文章內容列表
- 導入標簽
- 模板開發
- 1. 創建模板
- 2. 模板目錄結構
- 3. 模板描述文件(重要) info.ini
- 4. 變量輸出格式
- 4. 模板變量
- 5. 獲取站點配置
- 6. 模板界面多語言
- 7. 模板靜態目錄及調用靜態文件
- 8. 模板定義插件事件
- 9. 模板搜索頁
- 10. 模板配置JSON
- 11. 導入演示數據
- 12. 卸載刪除演示數據
- 13. 模板文件打包
- 14. 整站源碼打包
- 插件開發
- 1. 創建插件
- 2. 目錄結構
- 3. 插件名稱類
- 4. 插件信息(info.ini)
- 5. 插件事件
- 6. 配置文件
- 7. install 安裝目錄
- 8. 創建菜單
- 9. 插件控制器
- 10. 插件視圖
- 10-1 插件主題化
- 11. 插件模型
- 12. 模型事件
- 13. 插件內置函數
- 13-1 插件函數庫
- 14. 插件多語言
- 15. 插件中間件
- 16. 插件路由
- 17. 插件驗證器
- 18. 標簽庫
- 19. 第三方類庫
- 20. 數據庫文件導入
- 插件打包
- 后臺前端使用幫助
- 二次開發幫助(更新中)
- 后臺前端開發幫助
- 路由(鏈接地址、訪問規則)
- URL訪問
- 路由定義
- URL生成
- 附錄
- 數據字典
- 助手函數庫