我們在做動態網站的時候,通常都會利用GET的方式來將一些參數交給頁面處理,我們的網址中就會多出很多的=&等這些符號,如果我們並不想要讓使用者看到這個樣子呢?我們就可以用rewrite的方式來把網址做個改寫的動作。
首先,我們要在網站的根目錄製作一個 .htaccess 檔案,這個檔案中輸入
RewriteEngine On
這段文字是告訴這個網站要啟用改寫網址的引擎 RewriteEngine
下面的例子就要實作最基礎的網址改寫
下面的例子就要實作最基礎的網址改寫
RewriteEngine On
RewriteRule ^([0-9A-Za-z]+)_([0-9A-Za-z]+)$ index.php?id=$1&name=$2
RewriteRule ^([0-9A-Za-z]+)_([0-9A-Za-z]+)$ index.php?id=$1&name=$2
第一行解釋過了,就是開啟rewrite
RewriteRule就是要改寫的規則,表示方式如下:
RewriteRule (第一個變數的規則)_(第二個變數的規則)$ 舊的規則
在舊的規則中,我們會看到$1和$2,就是用來套用到每一組變數規則,也就是說id這個參數會被套用到第一個規則name會被套用到第二個規則中。 第一個變數規則和第二個變數規則的兩個括號()_()中有包夾一個底線_
這是用來分隔兩個變數的分隔符號,我們可以自訂各種符號作為分隔例如:/_等都可以喔
RewriteRule就是要改寫的規則,表示方式如下:
RewriteRule (第一個變數的規則)_(第二個變數的規則)$ 舊的規則
在舊的規則中,我們會看到$1和$2,就是用來套用到每一組變數規則,也就是說id這個參數會被套用到第一個規則name會被套用到第二個規則中。 第一個變數規則和第二個變數規則的兩個括號()_()中有包夾一個底線_
這是用來分隔兩個變數的分隔符號,我們可以自訂各種符號作為分隔例如:/_等都可以喔
原先的網址如果是
http://127.0.0.1/index.php?id=1&name=jameswolf
就會被改寫成
http://127.0.0.1/1_jameswolf
http://127.0.0.1/index.php?id=1&name=jameswolf
就會被改寫成
http://127.0.0.1/1_jameswolf
這樣php在讀取$_GET['id']就會是1,$_GET['name']則會是jameswolf
這樣可以讓網站多人使用的情況下看起來會好像幫每個人建立自己的資料夾。試試看吧!
相關網站:
http://lamp.linux.gov.cn/Apache/ApacheMenu/mod/mod_rewrite.html
這樣可以讓網站多人使用的情況下看起來會好像幫每個人建立自己的資料夾。試試看吧!
相關網站:
http://lamp.linux.gov.cn/Apache/ApacheMenu/mod/mod_rewrite.html
留言