2012-07-27 49 views
0

我有我的域名,我想從這樣的URL得到查詢:http://domain.com/querystring  和輸出將被:querystringPHP獲取QUERY_STRING後「/」

這是相同的技術bit.ly使用和Facebook的個人資料頁面。我必須在我的.htaccess文件中做些什麼嗎?或者是否有一個正常的PHP命令來做到這一點..我認爲這將是某種.htaccess URL重寫,但我只知道是否有任何其他選項。

+1

請參見['mod_rewrite'](http://httpd.apache.org/docs/current/mod/mod_rewrite.html)。 – 2012-07-27 14:43:20

+0

我不記得我的頭,但是可以使用'$ _SERVER'中的一個鍵。 'print_r($ _ SERVER)'應該告訴你。 – zneak 2012-07-27 14:43:44

回答

2

對於Facebook的例子: www.facebook.com/profile.php?id=####

然後使用mod_rewrite的樣子www.facebook.com/username

但要獲得username代碼:

$_GET['id']; 

Facebook已經到idusernames引用在其db表中

+0

'RewriteEngine On RewriteRule ^([a-zA-Z0-9 _-] +)$ user.php?username = $ 1 RewriteRule ^([a-zA-Z0-9 _-] +)/ $ user.php?用戶名= $ 1' 這是我的.htaccess代碼..我需要把一個點'.'。怎麼做?這是否像普通的正則表達式一樣工作? – Dimser 2012-07-27 17:03:14

0

我假設您使用的是Web服務器,如Apache和index.php是您的控制器。

啓用mod_rewrite,然後在根目錄(或您的虛擬主機定義)中配置.htaccess文件。

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 

然後使用$_SERVER['QUERY_STRING']

檢查$_SERVER超全局。

+0

沒有mod_rewrite,PHP通常不會被觸發只有http://domain.com/querystring – Ron 2012-07-27 14:46:38

+0

@Ron:是的,你說得對。我編輯過。 – 2012-07-27 14:52:37

0

如果您只是想使用URI的一部分,爲您的查詢,您可以從$ _ SERVER類似這樣的超級全局讓整個URI,然後打破它拆開來得到什麼您可能需要的部分

$uri = $_SERVER['REQUEST_URI']; 
$pieces = explode("/", $uri); 
$myQuery = $pieces[1];