iT邦幫忙

0

如何隱藏網址上的副檔名?

php
匿名 2008-12-12 16:18:0415654 瀏覽

請問一下,在apache/php的環境,要如何把網址上的.php副檔名隱藏起來?
例如 http://www.test.com/foo 對應到 foo.php 這個檔案

2 個回答

16
fillano
iT邦超人 1 級 ‧ 2008-12-12 17:19:34
最佳解答

使用apache httpd的rewrite模組(mod_rewrite),可以指定比對的pattern及轉換的規則,達到你的需求。如果只要在特定目錄這樣做,可以把規則放到.htaccess檔案裡面。

google一下應該可以找到很多資料。

14
jjhuang
iT邦新手 4 級 ‧ 2008-12-13 12:52:17

應該不能這樣改,
不然foo.php所產生的任何網頁都是同一個.
這樣搜尋引擎無法檢索吧,網頁靜態化就沒有功用了.

fillano iT邦超人 1 級 ‧ 2008-12-13 21:56:21 檢舉

看他要怎麼做吧?rewrite是使用regular expression做pattern matching,所以功能很強大的。使用front controller的許多framework都會(應該說必須)使用rewrite模組。

舉例來說,可以讓http://dummy.com/index/topicid/24513對應到http://dummy.com/index.php?topicid=24513。只要好好規劃,應該不會有問題。

apache httpd的手冊上,有非常詳盡的說明,也針對常見的案例做了不少示範:
http://httpd.apache.org/docs/2.0/misc/rewriteguide.html

而且他還不只能做到URL與URL / 檔案路徑的轉換,還可以做到將特定網址pattern的request轉到特定的port等,已經接近proxy的功能了。

jjhuang iT邦新手 4 級 ‧ 2008-12-14 03:57:14 檢舉

感謝fillano 補充,
我就是這個意思,
我是針對樓主的發言產生的疑問.
應該是php產生眾多的靜態網頁.而不是一個網頁.
我論壇有用靜態化(套裝的軟體),真的對檢索有幫助..
流量有明顯的上升.值得花時間研究..
rewrite規則還真的不好懂,感謝提供網頁資料

我要發表回答

立即登入回答