woff 發表於 2019-9-10 12:26:25

偽靜態規則htaccess的寫法


如果網站運行環境是Apache搭建的,通常都會在網站的根目錄下創建一個.htaccess文件以此來做URL地址的偽靜態。

在上一節中我們已經教大家如何讓Apache開啟偽靜態,這一節我們為大家演示如何創建.htaccess文件以及url重寫規則。

創建.htaccess文件

本地創建一個記事本文件,寫入預備好的偽靜態規則。如圖:

<Files ~ "^.(htaccess|htpasswd)[      DISCUZ_CODE_0      ]quot;>

deny from all

</Files>

ErrorDocument 404 /404.html

ErrorDocument 503 /503.html

order deny,allow

RewriteEngine on

解釋一下:

deny from all 禁止所有人直接查看.htaccess文件

ErrorDocument 404 /404.html 自定義404錯誤頁面

ErrorDocument 503 /503.html 自定義503錯誤頁面

RewriteEngine on 將RewriteEngine引擎設置為on,就是讓url重寫生效;反之,則成寫RewriteEngine off即可。




文件另存為,命名.htaccess,文件保存類型選擇「所以文件」,保存至網站根目錄下。如圖:


URL重寫(正則表達式)

1、文件在根目錄下的寫法

RewriteRule ^index.html$ index.php



示例:http://www.seesn.com/index.html → http://www.seesn.com/index.php

2、文件在二級目錄下的寫法

RewriteRule ^abc/$ abc/index.php

示例:http://www.seesn.com/abc/ → http://www.seesn.com/abc/index.php

3、二級目錄下帶一個參數的寫法

RewriteRule ^abc/(+)\.html$ abc/index.php?id=$1

示例:http://www.seesn.com/abc/ 1.html → http://www.seesn.com/abc/index.php?id=1

4、二級目錄下帶兩個參數的寫法

RewriteRule ^abc/(+)/(+)\.html$ abc/index.php?type=$1&id=$2



示例:http://www.seesn.com/abc/aaa /1.html → http://www.seesn.com/abc/index.php?type=aaa&id=1

http://www.seesn.com/abc/bbb /2.html → http://www.seesn.com/abc/index.php?type=bbb&id=2

RewriteRule ^abc/(+)-page-(+)\.html$ abc/index.php?type=$1&page=$2

示例:http://www.seesn.com/abc/ 1-page-1.html → http://www.seesn.com/abc/index.php?type=1&page=1

說明:關於url重寫,可以根據個人喜好來寫,比如上面的url,我們也可以把中間的短橫線寫成下劃線。如下所示:



RewriteRule ^abc/(+)_page_(+)\.html$ abc/index.php?type=$1&page=$2

示例:http://www.seesn.com/abc/ 1_page_1.html → http://www.seesn.com/abc/index.php?type=1&page=1

注意事項:

寫好的.htaccess後,我們通過FTP將其上傳到網站根目錄中。

以前我曾經犯過一個錯誤,就是無意間在其它目錄下又上傳了相同的.htaccess文件,自己卻又不知道,結果後面我即便改了根目錄下的這份.htaccess,也導致重寫的URL無法生效。後來在其它文件夾刪除了那份多餘的.htaccess後就排除問題了。也就是說網站的伺服器中只能有一份.htaccess文件存在。

參考文章:https://kknews.cc/news/km42av.html
頁: [1]
查看完整版本: 偽靜態規則htaccess的寫法