TShopping

 找回密碼
 註冊
搜索
查看: 1829|回復: 0
打印 上一主題 下一主題

[分享] 偽靜態規則htaccess的寫法

[複製鏈接]
跳轉到指定樓層
1#
發表於 2019-9-10 12:26:25 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
 
Push to Facebook

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

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

創建.htaccess文件

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

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

  2. deny from all

  3. </Files>

  4. ErrorDocument 404 /404.html

  5. ErrorDocument 503 /503.html

  6. order deny,allow

  7. 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、文件在根目錄下的寫法

  1. RewriteRule ^index.html$ index.php
複製代碼




示例:http://www.seesn.com/index.htmlhttp://www.seesn.com/index.php

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

  1. RewriteRule ^abc/$ abc/index.php
複製代碼


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

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

  1. RewriteRule ^abc/([0-9]+)\.html$ abc/index.php?id=$1
複製代碼


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

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

  1. RewriteRule ^abc/([a-zA-Z_]+)/([0-9]+)\.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

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

  2. RewriteRule ^abc/([0-9]+)-page-([0-9]+)\.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,我們也可以把中間的短橫線寫成下劃線。如下所示:



  1. RewriteRule ^abc/([0-9]+)_page_([0-9]+)\.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

 

臉書網友討論
*滑块验证:
您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2024-10-9 17:41 , Processed in 0.085128 second(s), 25 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表