用 htaccess檔案實現URL重寫

2021-07-10 04:34:19 字數 1461 閱讀 7717

你是否曾經對一些**的**看起來非常清爽,沒有任何.php或.html字尾感到奇怪?他們就是這樣做到的。

1、安裝 mod_rewrite 模組

因為 apache 伺服器預設是沒有開啟 mod_rewrite 模組的,所以我們必須手動來啟動。開啟 apache 的配置檔案 httpd.conf 檔案,找到下面一行:

#loadmodule rewrite_module modules/mod_rewrite.so

3、配置 .htaccess 檔案

.htaccess 檔案務必放在你專案的根目錄下,不要放在其他資料夾下。配置 .htaccess 檔案的格式如下:

rewriteengine on

#這裡是你的規則

解釋:rewriteengine on :啟動url重寫引擎

先看如下乙個配置好了的 .htaccess 檔案例項:

rewriteengine on

rewriterule ^index\.html$ /index.php [l]

rewriterule ^shop/(.+)/$ shop/shop.php?providerid=$1 [l] 

分析:上面 .htaccess 檔案就寫了二條規則。當在瀏覽器中輸入 index.html 時,後台呼叫的是 index.php 檔案。符號「^」是以後面的字元開頭,相信熟悉正規表示式的朋友不會陌生吧,符號「$」是以前面的字元結尾。符號l表示停止處理接下來的規則。最後一條當我們在瀏覽器中輸入 shop/2322 時,後台呼叫 shop.php檔案並傳遞引數provider=2322 。

配置規則,大家照著那一條去寫吧,記得每行後面加個 l 符號。

再寫乙個:

想重寫成 

rewriterule  ^category/([0-9]+)$  category.php?id=$1

如果有多頁的文章 如:&page=3 重寫成 /3

rewriterule ^category/([0-9]+)/([0-9]+)$  category.php?id=$1&page=$2

如果你想公升級你的站點,又要保證老的鏈結都可用,你也可以通過mod_rewrite模組來實現。你僅僅需要寫乙個規則之處這個網頁被永久的移動了。例子如下:

rewriterule ^oldpage.html$ newpage.html [r=301]

記錄下來,以後還會用到。

千里之行,始於足下。改變現在,就是改變未來。改變未來,從現在開始。 個人**:

企業**:

rewriteengine on

#rewriterule  ^$ public/    [l]

#rewriterule  ((?s).*) public/$1 [l]

rewriterule ^index(.*)\.html$ public\/index\.php[l]

rewriterule  ^index/(.*)/([0-9]+)$  index.php?$1=$2 [l]

用 htaccess檔案實現URL重寫

你是否曾經對一些 的 看起來非常清爽,沒有任何.php或.html字尾感到奇怪?他們就是這樣做到的。1 安裝 mod rewrite 模組 因為 apache 伺服器預設是沒有開啟 mod rewrite 模組的,所以我們必須手動來啟動。開啟 apache 的配置檔案 httpd.conf 檔案,找...

用Apache的 htaccess檔案增加使用者認證

有時候某些目錄下的檔案需要增加認證,apache預設的認證模組都是很完備的,以下就是乙個通過.htaccess檔案增加使用者認證的例子。即使對於虛擬主機使用者也可以通過上傳一些檔案來實現認證控制。首先用htpasswd建立乙個密碼檔案 比如檔名叫做my.passwd home apache bin ...

htaccess檔案妙用

相信這個功能,大家都不陌生,為了集中 網域名稱的權重,通常會將不帶www的網域名稱301跳轉到帶www的網域名稱上,比如說本站的網域名稱2zzt.com就會自動的跳轉到www.2zzt.com上來,這樣做的好處就是,搜尋引擎會集中不帶www的網域名稱的頁面權重到帶www的 頁面上來,如果沒有做301...