我的oroginal网址看起来像这样
http://www.example.com/showads.php?type=1
此重写似乎有效
RewriteRule ^listings/type/([0-9]+)/?$ showads.php?adtype=$1 [NC,L]
所以我要做的就是输入www.example.com/listings/type/1并将其转到原始网址
当我向原始网址添加一个参数时,我的问题就出现了,就像这样
http://www.example.com/showads.php?type=1&clearfilters
我尝试了几种重写组合,但都没有。
我放弃之前的最后一个是这个
RewriteRule ^listings/type/([0-9]+)/clear?$ showads.php?type=$1&clearfilters [NC,L]
我做错了什么?在最后一次重写?感谢您的帮助。
由于
JT
更好的解释
感谢您的回复。但是,这仍然无效。
让我试着解释会发生什么
如果我输入此网址
http://www.example.com/showads.php?adtype=3&clearfilters
我得到了预期的结果。以下是对它的使用的解释
用户点击网站上的各种链接,每个链接设置不同的会话变量。在几次点击的范围内,可以设置5或6个会话变量。
如果要提交此网址而不使用clearfilters
http://www.example.com/showads.php?adtype=3
您将adtype的会话变量设置为3
现在我们将拥有adtype会话变量以及可能的其他一些
使用clearfilters set
提交此网址时http://www.example.com/showads.php?adtype=3&clearfilters
该页面取消设置所有现有会话变量,并仅将adtype会话设置为3。
话虽如此,我正在寻找一条规则,我可以清理网址并输入类似的内容:
http://www.example.com/listings/type/3/clear
和丑陋的网址一样做。
也许有更好的方法。我很满意。
谢谢
JT
答案 0 :(得分:0)
从您的问题中不清楚您是否需要相同的替换网址,无论您是否拥有该网址的/clear
部分。
如果您想要使用或不使用/clear
的相同替换网址,您可以使用:
RewriteEngine On
RewriteRule ^listings/type/([0-9]+)(/clear)?$ showads.php?type=$1&clearfilters [NC,L]
如果您只想在键入的网址包含clearfilters
部分时在替换网址中使用/clear
参数,则可以执行以下操作:
RewriteEngine On
RewriteRule ^listings/type/([0-9]+)$ showads.php?type=$1 [NC,L]
RewriteRule ^listings/type/([0-9]+)/clear$ showads.php?type=$1&clearfilters [NC,L]