sef URL中的php请求变量
我有一个页面,即www.mysite.com/products.php?catid=5,其中我使用$_请求[catid']获取类别id并在查询中使用它。我切换到SEF URL,现在URL显示为www.mysite.com/products/category/5sef URL中的php请求变量,php,sef,Php,Sef,我有一个页面,即www.mysite.com/products.php?catid=5,其中我使用$_请求[catid']获取类别id并在查询中使用它。我切换到SEF URL,现在URL显示为www.mysite.com/products/category/5 $currentURL = $_SERVER['REQUEST_URI']; $elements = explode("/",$currentURL); $id_variable = $elements[3]; 如何使用新URL检索ca
$currentURL = $_SERVER['REQUEST_URI'];
$elements = explode("/",$currentURL);
$id_variable = $elements[3];
如何使用新URL检索catid值
.htaccess文件中使用了以下行来切换到SEF URL:
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]
例如,您需要使用mod_rewrite相应地重写URL
RewriteRule ^(.*)$ index.php?url=$1 [NC,QSA]
此规则将URL www.mysite.com/products/category/5重写为www.mysite.com/index.php?URL=products/category/5。从现在开始,您可以解析变量$\u GET[url]或优化重写规则。由于htaccess在PHP开始构建之前生效,因此您可以使用下面的代码片段获取当前url,并使用 www.mysite.com/products/category/5
$currentURL = $_SERVER['REQUEST_URI'];
$elements = explode("/",$currentURL);
$id_variable = $elements[3];
如果在url中包含http://元素,那么我认为元素计数应该是5
或者。。。如果您知道id将始终是最后一个元素
$id_variable = $elements[(count($elements)-1)];
它将获取数组中的最后一个元素
您始终可以使用以下命令临时显示数据
echo "<div style='background-color:#FFF;'>";
echo ("Elements array:<br>\n");
print_r($elements);
echo "</div>";
希望这对你有所帮助因为你没有描述你转为SEF的方法,只有你知道答案。这取决于你是如何转为SEF的。HTACE规则?一些框架?我已经更新了原始帖子,包含了关于我用来创建SEF URL的方法的信息。顺便说一句,这是一个Joomla网站,我只是使用了我在各种教程中找到的一些方法。请查看我的原始帖子,我已经用我的htaccess文件中的更多信息更新了它。