我的问题和出错的事情
是我有两个片段
示例:www.xxx.nl/products/id
我在htaccess中有这个
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
是否存在解决方案,或主持人的这种情况
提前感谢,理查德
答案 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中当前目录之前的任何内容)。