我已經創建了一個PHP分頁系統,但是我想在地址欄中隱藏_GET變量。在地址欄中隱藏文件
目前礦山看起來像這樣:http://example.com/images.php?page=1
但我已經看到了有http://example.com/images/1/
幾個網站。
只是想知道他們如何去做這件事?任何人都可以將我指向正確的方向嗎?乾杯
我已經創建了一個PHP分頁系統,但是我想在地址欄中隱藏_GET變量。在地址欄中隱藏文件
目前礦山看起來像這樣:http://example.com/images.php?page=1
但我已經看到了有http://example.com/images/1/
幾個網站。
只是想知道他們如何去做這件事?任何人都可以將我指向正確的方向嗎?乾杯
您將需要從您的網絡服務器的支持,以獲得正確的請求,並在內部改寫/images/1/
的請求/images.php?page=1
訪問它。大多數Web服務器有一個模塊或擴展來支持這樣的行爲就像Apache’s mod_rewrite,lighttpd’s mod_rewrite,ISAPI Rewrite module for ISS等
大多數框架照顧它,但你需要配置你的Web服務器來處理它。以下是關於設置Apache htacces的說明from CodeIgniter。
如果你使用Apache,那麼你可以使用mod_rewrite做這種魔法:http://en.wikipedia.org/wiki/Rewrite_engine
如果你的服務器是Apache,你可以創建一個文件名爲的.htaccess(它沒有文件名,只有一個擴展 - 值得在本地機器上給它起一個名字,因爲有些文件系統會隱藏沒有名字的文件),並學習如何使用RewriteRules
這很容易用於簡單的重寫,就像你想要的。
樣本.htaccess文件:
RewriteEngine On
#Translate http://address.com/images/1/ to http://address.com/images.php?page=1
RewriteRule ^images/(.*)$/images.php5?page=$1
此規則在.htaccess文件中不起作用。 – Gumbo 2010-05-13 13:47:19
通常所有的請求重定向(其網址是內部rewrited)採用Apache mod_rewrite和RewriteEngine
,然後(在腳本)單PHP腳本的URL檢查和處理程序匹配這個URL(如果有更多的處理程序)與相應的參數被調用。 PHP中的一些框架,通常是MVC ones,完全建立在一個單一的index.php上,所有請求都被「重定向」(URL重寫)。
如果你只需要與?page=
來解決這個問題,嘗試在Apache的配置與此URL重寫以/images/1/
/images.php?page=1
(如濃湯建議)(的的.htaccess文件爲例):
RewriteEngine on
RewriteRule ^images/([0-9]+)/?$ images.php?page=$1 [L]
您接受比例很低,我建議你接受一些更多的答案。 – 2010-05-13 13:44:08