2012-04-02 13 views
0

我本想用戶訪問www.domain.com/item/ABC123如何利用PHP輸入參數從URL像這樣www.domain.com/item/ABC123


正如你可以在這裏看到ABC123應輸入參數

這樣www.domain.com/item/?Id=ABC123

在/項目/有一個index.php文件,這將需要一個ID輸入參數,我該怎麼辦將輸入參數值從www.domain.com/item/ABC123傳遞給index.php文件的id輸入參數?

+1

可能重複(http://stackoverflow.com/questions/122097/apache-mod-rewrite-primers)和大概100 [阿帕奇MOD-重寫引物?]更多的mod_rewrite線程。 – j08691 2012-04-02 03:30:32

+1

可能的重複[如何使用mod_rewrite更改URL的路徑和文件名](http://stackoverflow.com/questions/105308/how-do-i-use-mod-rewrite-to-change-the -path-and-filename-of-a-url) – outis 2012-04-02 03:35:51

回答

1

使用.htaccess文件

添加重寫規則:

RewriteRule ^/item/([a-zA-Z0-9-]*)$ /item/index.php?id=$1 [QSA,L,E] 
0

你需要URL重寫。 Basicaly,你將有一個.htaccess的重寫規則,它將轉換你的URL。 例如,www.domain.com/item/some/things/ABC123分成www.domain.com/item/index.php?queryString=some/things/ABC123,你的PHP將完成剩下的工作。

0

類似的東西,以這應該工作:

htaccess的

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php 

的index.php

$uri = preg_replace("#(/+)#","/",$_SERVER["REQUEST_URI"]); 
$uri = array_shift(explode("/",$uri)); 

現在,$uri是URI的每個部分的陣列。因此/ A/B/C變爲:

array(
    0 => "a", 
    1 => "b", 
    2 => "c", 
) 
+0

注意,這是一個通用的解決方案,包含未經測試的代碼,以便在PHP應用程序中實現快速和無痛的uri路由。 – Navarr 2012-04-02 03:35:46

相關問題