Php .htaccess-使用3个变量重写,但之后将获得URL的其余部分
因此,我目前正在使用我的.htaccess来编写我的URL,使其更加友好。 但是我在获取第四个变量时遇到了问题,可能是更多的文件夹。我会尽量在下面解释 因此,目前我有以下URL正在运行: www.mysite.co.uk/first/second/third 现在,我使用重写规则: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
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片段。。。