Php 如何从uri中获取段
我的问题和出错的地方 是当我有两段时 示例:www.xxx.nl/products/id 我在htaccess里有这个Php 如何从uri中获取段,php,url,rest,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] 是否有解决方案,或者这是主机造成的 提前感谢Richard,请求的URI路径和查询位于。您可以通过以下方式获得分
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
是否有解决方案,或者这是主机造成的
提前感谢Richard,请求的URI路径和查询位于。您可以通过以下方式获得分段:
$_SERVER['REQUEST_URI_PATH'] = preg_replace('/\?.*/', '', $_SERVER['REQUEST_URI']);
$segments = explode('/', ltrim('/', $_SERVER['REQUEST_URI_PATH']));
您可以使用该函数解析任何url并将其分为相关部分(假设它是有效的url)。传递到index.php的url永远不会包含主机名、端口或查询字符串。(来源:) 由于url的其余部分由正斜杠分隔,因此可以使用将其转换为数组
$uri_segments = explode('/', $_GET['url']);
注意:数组实际包含的内容取决于重写规则发生的位置。如果它位于.htaccess文件或
块中,则匹配块的某些部分将丢失(url中当前目录之前的任何部分)。但是为什么不在get变量url中,只是为了澄清,当请求的url已经存在时,您不需要在参数中传递它。@Gumbo,看起来我太快了。我可以处理段。只有页面不再显示正常。但是我不需要这个页面,我只需要把xml发回。很抱歉,它应该把这些片段放在get变量中,并按照我的想法正常显示页面?谢谢,我需要它来提供Web服务。我仍然不能完全理解它,因为我有使用REST的能力,我现在可以使用一个类作为第一个片段,第二个用于方法,第三个用于任何其他变量。上面的问题与一个不是以斜杠开头的css文件有关。现在我可以去弄清楚剩下的了。