我有一个页面(即www.mysite.com/products.php?catid=5
),我在其中使用$_REQUEST[catid']
获取类别ID并在查询中使用它。我切换到SEF网址,现在网址显示为www.mysite.com/products/category/5
如何使用新网址检索catid
值?
.htaccess文件中使用以下行来切换到SEF网址:
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]
答案 0 :(得分:0)
例如,您需要使用mod_rewrite相应地重写URL。
RewriteRule ^(.*)$ index.php?url=$1 [NC,QSA]
此规则会将网址www.mysite.com/products/category/5
重写为www.mysite.com/index.php?url=products/category/5
。从这一点开始,您可以解析变量$_GET["url"]
或优化重写规则。
答案 1 :(得分:0)
由于htaccess在PHP开始构建之前生效,您可以使用下面的代码片段获取当前URL,并使用
的文字示例获取元素的值,如下所示:www.mysite.com/products/category/5
$currentURL = $_SERVER['REQUEST_URI'];
$elements = explode("/",$currentURL);
$id_variable = $elements[3];
如果你在网址中包含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>";
希望这会有所帮助