2016-02-14 72 views
2

什麼是下面的情況的htaccess的規則:獲取PHP參數

我我的用戶重定向到這個頁面:
system/abc123/step1

沒有規則則可能是:
system.php?id=abc123&step=step1

但是我怎樣才能通過$_GET得到這兩個參數通過?

  • ABC123

  • 第一步

非常感謝。

回答

1

我一直在尋找的是:

在我的.htaccess:

RewriteEngine on 
RewriteRule ^system/(.+)/(.+)$ system?token=$1&step=$2 [L] 

在我system.php頁:

$QUO_Token = $_GET['token']; // abc123 
$QUO_Step = $_GET['step']; // step1 
0

自己的解決方案是好的,它的工作原理如預期的那樣,無需觸摸PHP代碼。

但是,對於我的劇本我採取不同的方式:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /processUrl.php [NC, L] 

通過這種方式,ALL(不Foud)傳入的請求都重定向到processUrl.php,其中有一個代碼像這樣:

$uri = (object) parse_url($_SERVER['REQUEST_URI']); 
$uri->thread = explode('/', substr($uri->path, 1)); 

if('system' == $uri->thread[0]) 
{ 
    $_GET['id'] = $uri->thread[1]; 
    $_GET['step'] = $uri->thread[2]; 
    include('system.php'); 
} 
elseif('browse' == $uri->thread[0]) 
{ 
    // Other condition here 
} 
elseif(isset($uri->query)) 
{ 
    // Process ORIGINAL $_GET 
} 
else 
{ 
    include('Your404NotFoundPage.php'); 
} 

我更喜歡上述方法由於:

  1. 透明度:我可以直接在代碼中看到如何處理不同的URI;
  2. 靈活性:我可以添加條件或處理新的網址,而無需修改.htaccess文件。