Php .htaccess名称中的斜杠获取变量问题

Php .htaccess名称中的斜杠获取变量问题,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,您好,很抱歉打扰您,我试着四处看看,但我找不到解决方案,我真的不知道如何以及是否可以用重写规则来做类似的事情 这是htaccess文件中对我的问题感兴趣的部分: 重写规则^pagename/([^/]+)-([^/]+)mypage.php?name=$1&id=$2[NC,L] example.com/mypage/dogarticle-800ad43 所以我在php中的变量如下 $\u GET[“name”]=dogarticle和$\u GET[“name”]=800ad43 到目前为止还

您好,很抱歉打扰您,我试着四处看看,但我找不到解决方案,我真的不知道如何以及是否可以用重写规则来做类似的事情

这是htaccess文件中对我的问题感兴趣的部分:

重写规则^pagename/([^/]+)-([^/]+)mypage.php?name=$1&id=$2[NC,L]

example.com/mypage/dogarticle-800ad43

所以我在php中的变量如下

$\u GET[“name”]=dogarticle和$\u GET[“name”]=800ad43

到目前为止还不错,但如果一篇文章包含斜杠,我就无法再获得正确的变量,例如

example.com/mypage/animals/dogandcat-800ad44

如果动物/狗和猫应为名称,我将收到以下get变量:

$\u GET[“name”]=动物$\u GET[“name”]=狗和猫

这里的问题是,我应该如何接收以下get var:

$\u GET[“name”]=动物/狗和猫$\u GET[“name”]=800ad44>

我真的想不出解决办法,可能不是我最好的时候

谢谢

编辑: 在名称中可以有很多斜杠示例:

example.com/mypage/animals/dogandcat/squirrel/someotheranimal-800ad44

您可以使用:

RewriteRule ^pagename/(.+)-([^/]+)$ mypage.php?name=$1&id=$2 [NC,L]

看起来你需要清理你的url结构,你可以
urlencode
你的url,这样
/
=
%2F
ie
urlencode('animals/dogandcat')这样你就选择了URL的正确部分谢谢你的建议,我也在考虑作为最后一个资源来做一些像php或js方面的事情,但我只是想知道是否直接使用HTAccessThank是不可能的。谢谢你真的帮我省了很多麻烦,这太完美了