偽靜態規則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]