實現僞靜態

1.首先第一種方法,此種配置的Rewrite規則是直接在httpd.conf下書寫。
(1)去除httpd.conf文件中"#LoadModule rewrite_module modules/mod_rewrite.so"前面的"#"號;
(2)然後再在httpd.conf中書寫如下規則:
RewriteEngine on
#當訪問任何以t_開頭,以.html結尾的文件時,將$1用與(.*)匹配的字符替換後,訪問相應的test.php頁面
RewriteRule ^/t_(.*).html$ /test.php?id=$1
前面是正則,也就是假的url,第二個是真正的url。此方法之針對localhost,使用此方法,請註釋apache下#Include conf/vhosts.conf,
這個是虛擬機的擴展項,請註釋掉,以免引起不必要的錯誤。



2.然後是第二種方法,在我們的apache下vhosts這個配置文件進行配置
(1)首先我們將之前註釋的打開(#Include conf/vhosts.conf),之後呢,我們進入這個配置文件,詳情請看下面:
我們默認進去是這樣:

DocumentRoot "D:\xdx"
ServerName www.xdx.com
ServerAlias phpStudy.net

Options +Indexes +FollowSymLinks +ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted


我們需要改成這個樣子:

DocumentRoot "D:\xdx"
ServerName www.xdx.com
ServerAlias phpStudy.net
RewriteEngine on
RewriteRule ^/t_(.*).html$ /test.php?id=$1

Options +Indexes +FollowSymLinks +ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted


改成這樣就大功告成了



3.接下來看第三種方法
我們進入我們的web網站目錄,創建一個文件,名爲.htaccess這個文件,在裏面加入
RewriteEngine on
RewriteRule t_(.*).html text.php?id=$1
保存之後退出,我們可以實現相同的結果,快來嘗試一下







在這需要同學注意下 第一種方法和第二種方法 在正則的前面 必須要有/這個東西 他每次匹配的都是/什麼什麼的網址 所以替換的那個url也得在開頭加/ 而第三種方法 他匹配的url是沒有/的 所有正則不需要加/
RewriteEngine on
RewriteRule ^t_(.*).html$ text.php?id=$1

大家可以對照一下兩者的區別

RewriteEngine on
RewriteRule ^/t_(.*).html$ /test.php?id=$1 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章