我正在開發一個用戶帳戶的網站。對於每個URL是沿着線:是否有另一種方式通過PHP的URL傳遞值?
www.site.com/profile.php?user=ChanceM
但是,我想知道是否有另一種方法是通過URL與PHP有更多像這樣的URL發送值並抓住他們:
www.site.com/ChanceM
或者:
www.site.com/profile.php/ChanceM
我只是想知道如果這是可能的,因爲記住第一URL是不是很人性化。謝謝!
我正在開發一個用戶帳戶的網站。對於每個URL是沿着線:是否有另一種方式通過PHP的URL傳遞值?
www.site.com/profile.php?user=ChanceM
但是,我想知道是否有另一種方法是通過URL與PHP有更多像這樣的URL發送值並抓住他們:
www.site.com/ChanceM
或者:
www.site.com/profile.php/ChanceM
我只是想知道如果這是可能的,因爲記住第一URL是不是很人性化。謝謝!
對於Apache是的 - 您需要查看手冊頁的rewrite規則。該鏈接會告訴你如何做到這一點。也看看Apache文檔。
至於其他服務器,我不知道。
有一定的方法可以做到這一點,但可能不是像$ _GET數組那樣內置到PHP中。你可以做的一件事是在Apache配置中,用一個php腳本替換404頁面,該腳本獲取url並將其重定向到www.site.com/profile.php?user=ChanceM(我認爲在mod_rewrite中也可以這樣做)。
是的,你可以做任何你說明的方式。
在第一個示例中,您必須使用類似mod_rewrite的東西,它可以透明地將友好URL(site.com/Username)重寫爲PHP腳本(site.com/profile.php?user=Username)
使用第二種方法,您必須使用$_SERVER['REQUEST_URI']
來訪問URL中的數據,並手動將其解析爲可用變量。
如果你想發送「乾淨的URL」(如果沒有做一些類型的URL重寫),你可以使用的東西像破滅和解析網址:
http://us2.php.net/manual/en/function.parse-url.php
http://us2.php.net/manual/en/function.implode.php
這些方法讓你拉URL的各個部分並使用它們
你想在Apache中使用mod_rewite
。
這裏有一個重寫規則RewriteRule ^(.*)$ profile.php?user=$1
的例子你可以在這裏進行測試:http://martinmelin.se/rewrite-rule-tester/
是的,你必須看到的是在很多地方做。 – 2012-04-19 00:06:26
您正在查找的關鍵字是「URL重寫」。 – 2012-04-19 00:06:28
去搜索網絡服務器如何工作。 – Incognito 2012-04-19 00:07:02