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


.htaccess - Rewrite with 3 variables but after that get the rest of the URL

所以我目前使用我的。htaccess来写我的URL更URL友好。但是我在第四个变量上遇到了麻烦,这个变量可以是更多的文件夹。我将在下面尽力解释它。

所以现在我有下面的URL工作:

www.mysite.co.uk第一/二/三

现在我使用重写规则:

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第一/二/三/四

www.mysite.co.uk第一/二/三/四/五

www.mysite.co.uk第一/二/三/四/五/六

从上面我想要返回以下变量:

$_GET['var_1'] = first

$_GET['var_2'] = second

$_GET['var_3'] = third/fourth

$ _GET [' var_3 '] = 第三/四/五

$ _GET [' var_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/at start www.mysite.co.uk/e/first/second/third/fourth
然后从start

中删除/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]