我正在使用.htaccess
,我只想制作友好的网址。
我当前的网址:
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]
分页符。
所以,我想让第二个参数可选,如果可能的话用破折号分隔。
任何人都可以帮助我吗?
答案 0 :(得分:1)
它与www.url.com/[SOMETHING]
不匹配,因为它最终需要-
。在第二个捕获组中包含-
,如下所示:
^([^/]+?)(-[^/]+)?$
还将第一个贪心量词改为懒惰量词以避免匹配过多。
答案 1 :(得分:0)
您只需添加第二条规则
即可RewriteRule ^([^/]+)-([^/]+)?$ index.php?v=$1&i=$2
RewriteRule ^([^/]+)$ index.php?v=$1
答案 2 :(得分:0)
我建议您使用一个名为Helium的项目。该文档位于此处:访问https://github.com/iamyogik/Helium
它将为您完成所有这些工作,而您不必担心任何事情。您可以在/{var1}/{var2}/
之间传递变量参数,也可以同时使用$_GET or $_POST
请求。