Php .htaccess-使用3个变量重写,但之后将获得URL的其余部分

Php .htaccess-使用3个变量重写,但之后将获得URL的其余部分,php,apache,.htaccess,url,mod-rewrite,Php,Apache,.htaccess,Url,Mod Rewrite,因此,我目前正在使用我的.htaccess来编写我的URL,使其更加友好。 但是我在获取第四个变量时遇到了问题,可能是更多的文件夹。我会尽量在下面解释 因此,目前我有以下URL正在运行: www.mysite.co.uk/first/second/third 现在,我使用重写规则: RewriteRule ^e/([a-zA-Z0-9-/]*)/([a-zA-Z0-9-/]*)/([a-zA-Z0-9\-\/]*)$ index.php?var_1=$1&var_2=$2&var

因此,我目前正在使用我的.htaccess来编写我的URL,使其更加友好。 但是我在获取第四个变量时遇到了问题,可能是更多的文件夹。我会尽量在下面解释

因此,目前我有以下URL正在运行:

www.mysite.co.uk/first/second/third

现在,我使用重写规则:

RewriteRule ^e/([a-zA-Z0-9-/]*)/([a-zA-Z0-9-/]*)/([a-zA-Z0-9\-\/]*)$ index.php?var_1=$1&var_2=$2&var_3=$3   [L]
当我遇到以下情况之一时,我的问题就会出现:

www.mysite.co.uk/first/second/third/fourth

www.mysite.co.uk/first/second/third/fourth/fifth

www.mysite.co.uk/first/second/third/fourth/fifth/sixth

根据以上内容,我希望返回以下变量:

$\u GET['var\u 1']=首先

$\u GET['var\u 2']=second

$\u GET['var\u 3']=第三/第四

$\u GET['var\u 3']=第三/第四/第五

$\u GET['var\u 3']=第三/第四/第五/第六

所以基本上我总是有一个'var_1'和'var_2'集,但是第三个变量可以是URL的其余部分


我希望这是有意义的,而且是可能的

我不知道为什么您的规则以^e/ 如果您的URL格式为:www.mysite.co.uk/e/first/second/third/fourth 然后使用这个正则表达式:

RewriteRule ^e/([a-zA-Z0-9-]+)(/([a-zA-Z0-9-]+))?(/([a-zA-Z0-9-/]*))?$ index.php?var_1=$1&var_2=$3&var_3=$5 [L]
如果您需要在开始时不使用/e/的话www.mysite.co.uk/e/first/second/third/fourth
然后从开始删除/e/

RewriteRule ^([a-zA-Z0-9-]+)(/([a-zA-Z0-9-]+))?(/([a-zA-Z0-9-/]*))?$ index.php?var_1=$1&var_2=$3&var_3=$5 [L]
上面的示例甚至适用于url-s,如/first/first/second,但如果您不需要它,并且希望在3个或更多参数的情况下使用此规则,则可以简化规则:

RewriteRule ^([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/([a-zA-Z0-9-/]+)$ index.php?var_1=$1&var_2=$2&var_3=$3 [L]

我不知道为什么您的规则以^e/ 如果您的URL格式为:www.mysite.co.uk/e/first/second/third/fourth 然后使用这个正则表达式:

RewriteRule ^e/([a-zA-Z0-9-]+)(/([a-zA-Z0-9-]+))?(/([a-zA-Z0-9-/]*))?$ index.php?var_1=$1&var_2=$3&var_3=$5 [L]
如果您需要在开始时不使用/e/的话www.mysite.co.uk/e/first/second/third/fourth
然后从开始删除/e/

RewriteRule ^([a-zA-Z0-9-]+)(/([a-zA-Z0-9-]+))?(/([a-zA-Z0-9-/]*))?$ index.php?var_1=$1&var_2=$3&var_3=$5 [L]
上面的示例甚至适用于url-s,如/first/first/second,但如果您不需要它,并且希望在3个或更多参数的情况下使用此规则,则可以简化规则:

RewriteRule ^([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/([a-zA-Z0-9-/]+)$ index.php?var_1=$1&var_2=$2&var_3=$3 [L]

您可以通过php解析url:examples:[]Hi@DenisSolakovic感谢您的输入。这样做可能会奏效,但如果变量以原始格式发送(?var_one=first),效果会更好。除非我遗漏了一些东西。嗯,您可能可以使用.htaccess[,但我的另一个建议是使用delimiter/分解url参数并获取url片段…您可以通过php解析url:这里的示例:[]您好@DenisSolakovic谢谢您的输入。这样做可能会奏效,但如果变量以原始格式发送(?var_one=first),效果会更好。除非我遗漏了什么。嗯,您可能可以使用.htaccess[,但我的另一个建议是使用分隔符/分解url参数并获取您的url片段。。。