0

我正在使用.htaccess,我只想制作友好的 URL。

我现在的网址:

www.url.com/index.php?v=[SOMETHING]&i=[IDIOM]

但也可以是:

www.url.com/index.php?v=[SOMETHING]

我想要的是:

www.url.com/[SOMETHING]-[IDIOM]

或者在第二种情况下:

www.url.com/[SOMETHING]

.htaccess我做的配置:

RewriteRule ^([^/]+)-([^/]+)?$ index.php?v=$1&i=$2

写作一切www.url.com/[SOMETHING]-[IDIOM]顺利,网页运行正常。但在第二种情况下,我必须写www.url.com/[SOMETHING]**-**. 如果我写www.url.com/[SOMETHING]分页符。

所以,我想让第二个参数是可选的,如果可能的话,用破折号分隔。

任何人都可以帮助我吗?

4

3 回答 3

1

它不会匹配www.url.com/[SOMETHING],因为它期望 a-在最后。包括-第二个捕获组内部,如下所示:

^([^/]+?)(-[^/]+)?$

还将第一个贪婪量词更改为惰性量词以避免匹配太多。

于 2013-08-07T15:34:59.740 回答
0

您可以添加第二条规则

RewriteRule ^([^/]+)-([^/]+)?$ index.php?v=$1&i=$2
RewriteRule ^([^/]+)$ index.php?v=$1
于 2013-08-07T15:23:43.000 回答
0

我建议您使用一个名为 Helium 的项目。该文档可在此处获得:访问https://github.com/iamyogik/Helium

它会为你做所有这些事情,你不必担心任何事情。您可以在请求之间传递可变参数/{var1}/{var2}/,也可以同时使用$_GET or $_POST请求。

于 2018-07-12T08:05:05.700 回答