我有以下结构:
RewriteRule ^page/([a-z0-9-]+)?$ page.php?pagename=$1 [NC,L]
RewriteRule ^page/([a-z0-9-]+)/?$ page.php?pagename=$1 [NC,L]
我可以通过网址到达名为“talk”的页面:
site.com/page/talk
site.com/page/talk/
没关系,但我想在dinamically添加一些选项,我不想创建更多的重写规则,我想在同一个链接中使用正常的GET,如:
site.com/page/talk/?fontsize=15
我该怎么做?
另外,有没有办法在下面使用这样的东西?
RewriteRule ^pages/order-([a-z0-9-]+)/?$ pages.php?order=$1 [NC,L]
我已经尝试但不能那样做。
感谢。
答案 0 :(得分:1)
如今我什么时候需要的时候,我已经忘记了这个老问题。参数,我使用QSA标志。
#getintouchlayout{overflow: auto;}
#col1-2{
width: 63.5%;
margin-right: 5%;
float: left;
}
#col3{
width: 31.5%;
float: right;
}
我使用(/?)将两个规则简化为一个,这意味着它可以具有/和结尾,并且QSA标志附加了?值到末尾,如下面的示例:
RewriteRule ^page/([a-z0-9-]+)(/?)$ page.php?pagename=$1 [QSA,NC,L]
结果:
page/home?debug=true
答案 1 :(得分:0)
对于第一部分,您可以移动原始查询字符串以与新查询字符串合并。不幸的是,由于所述查询字符串的布局方式,这必须在单独的规则中完成。在其他新闻中,你的正则表达式似乎有点格格不入。这是新的:
RewriteRule ^page(?:/([a-z0-9\-]+))?/?$ page.php?pagename=$1 [NC,L]
RewriteRule ^page(?:/([a-z0-9\-]+))?/?\?(.*)$ page.php?pagename=$1&$2 [NC,L]
看看前两个如何合并成一个?