我如何从uri中获取细分

时间:2009-07-22 18:59:28

标签: php url rest

我的问题和出错的事情

是我有两个片段

示例:www.xxx.nl/products/id

我在htaccess中有这个

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

是否存在解决方案,或主持人的这种情况

提前感谢,理查德

3 个答案:

答案 0 :(得分:2)

您可以使用parse_url函数解析任何网址并将其分成相关部分(假设它是有效的网址)。

答案 1 :(得分:0)

请求的URI路径和查询位于$_SERVER['REQUEST_URI']。您可以使用以下内容获取细分:

$_SERVER['REQUEST_URI_PATH'] = preg_replace('/\?.*/', '', $_SERVER['REQUEST_URI']);
$segments = explode('/', ltrim('/', $_SERVER['REQUEST_URI_PATH']));

答案 2 :(得分:0)

传递给index.php的url永远不会包含主机名,端口或查询字符串。 (来源:mod_rewrite docs)。

由于url的其余部分由正斜杠分隔,因此您可以使用explode将其转换为数组。

$uri_segments = explode('/', $_GET['url']);

注意:数组实际包含的内容取决于RewriteRule的出现位置。如果它位于.htaccess文件或<Directory>块中,则匹配块的部分将丢失(在url中当前目录之前的任何内容)。