2012-01-19 59 views
-2

我有一個頁面(即www.mysite.com/products.php?catid=5),其中我使用$_REQUEST[catid']獲取類別id並在查詢中使用它。我切換到海基會的網址,現在的網址顯示爲www.mysite.com/products/category/5php請求變量在sef的URL

如何使用新的網址檢索catid值?

以下線路中的.htaccess文件被用於切換海基會網址:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !^/index.php 
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ [NC] 
RewriteRule (.*) index.php 
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] 
+1

既然你沒有說明你用來切換海基會的方法,只有自己知道答案。 –

+1

這取決於你如何切換到SEF。 htacess'rewriteRules'?一些框架? – J0HN

+0

我已更新原始文章以包含有關我用於創建海基會網址的方法的信息。順便說一下,它是一個Joomla網站,我只是使用了我在各種教程中找到的一些方法。 – bikey77

回答

0

您需要相應地重寫URL使用mod_rewrite例如。

RewriteRule ^(.*)$ index.php?url=$1 [NC,QSA] 

這一規則的URL重寫www.mysite.com/products/category/5www.mysite.com/index.php?url=products/category/5。從這一點開始,您可以分析變量$_GET["url"]或改進重寫規則。

+0

請檢查我原來的帖子,我已經更新了我的htaccess文件的更多信息。 – bikey77

0

由於htaccess的生效PHP開始建立你可以抓住與下面的代碼片段當前的URL,並獲得元素的值用

www.mysite.com/的字面舉例如下之前產品/分類/ 5

$currentURL = $_SERVER['REQUEST_URI']; 
$elements = explode("/",$currentURL); 
$id_variable = $elements[3]; 

如果包含http:// url中,那麼元素數應爲5我相信

或者......如果你知道該ID將永遠是最後一個元素

$id_variable = $elements[(count($elements)-1)]; 

這將抓住數組中的最後一個元素;

你總是可以使用以下方法來顯示數據暫時

echo "<div style='background-color:#FFF;'>"; 
echo ("Elements array:<br>\n"); 
print_r($elements); 
echo "</div>"; 

希望這有助於