Loading...

RewriteRule仿靜態連結

Temperature: 0 °C

ChungChung
author_tools

前幾天寫了關於404頁面導向位置的定義。Url link

同樣的是要定義.htaccess 這次是要將網址改變....

RewriteRule仿靜態連結
一般來說用PHP寫程式時通常都會用:


$_POST 或者是 $_GET

來傳遞變數。

當系統越寫越龐大,傳遞的變數變多,就有可能產生如以下連結:

例如 http://demo.com/index.php?list=detail&id=88

不想使用這麼長的網址? 那該如何處理? 這時就得修改定義.htaccess檔了

但首先需先確定Apache裡的設定

修改 Apache 中的 http.conf
然後搜尋並將下行前的注解【#】拿掉
#LoadModule rewrite_module modules/mod_rewrite.so
再搜尋 http.conf 中 AllowOverride None 的語句,然後將其改為 AllowOverride All
再重新啟動 Apache

接著定義.htaccess

RewriteEngine on
RewriteRule ([a-zA-Z]+)-([0-9]+).html$ index.php?list=$1&id=$2

當定義好.htaccess檔之後一樣的將檔案上傳至網站空間,之後只要將網址繕寫為

http://demo.com/detail-88.html
即可將網址指向http://demo.com/index.php?list=detail&id=88

像這樣短網址靜態頁面的好處:

一開始想到的是網址變短了...對使用者來說就友善些。

另外,網路上聽說是有利於SEO啦...

所以也將這樣的方式套用在innstory裡。

RewriteEngine On :將重寫引擎設為 On
RewriteRule:重寫網址規則
([0-9]+): 表示參數值為數字
([a-z]+): 表示參數值為英文
(.*) : 表示參數萬用字元(可接受中文字)

另外,尾部參數規則:

[NC] (不分字母大小寫)
[NE] (不再輸出轉義特殊字符)
[OR] (或者, 用來與下一規則連結用)
[R] 重新導向
[F] 重新導向到 403 forbidden 頁面
[G] 重新導向到 410 forbidden 頁面
[P] 強制使用代理
[N] 重新從第一條規則開始運行
[L] 表示這是最後一條規則

台北市松山區八德路四段650號 Go

https://innstory.com/story-RewriteRule仿靜態連結-429
寫程式筆記

Prev
 定義404頁面

Next
我最愛的檳城美食之一浮羅池滑菜市場的【樂樂Lok_Lok】