我对单个页面有多个查询。为了使URL干净,我使用了htaccess,但对于类似的情况,只有第一条规则有效。
RewriteEngine on
RewriteRule ^([a-zA-Z0-9_-]+)$ eventlist.php?i=$1 # 1st rule works
RewriteRule ^([a-zA-Z0-9_-]+)$ eventlist.php?c=$1 # 2nd rule doesn't work
第一条规则是得到完美的结果,但第二条规则没有得到任何结果。
两个规则都相同,第二个规则不起作用,因为第一个规则已经重写了URL。除此之外,规则本身也不符合逻辑。
您的示例将执行以下操作:
- domain.com/123将指向事件列表.php?i=123
如果你想把第二条规则移到第一条,就会发生以下情况:
- domain.com/123将指向事件列表.php?c=123
你怎么知道是谁把你带到了活动名单上?
一个有效的、更符合逻辑的解决方案是:
RewriteEngine on
RewriteRule ^i-([a-zA-Z0-9_-]+)$ eventlist.php?i=$1
RewriteRule ^c-([a-zA-Z0-9_-]+)$ eventlist.php?c=$1
这样domain.com/i-123将指向eventlist.php?i=123。这只是一个例子,您最好使用domain.com/event-123/
编辑:
根据你的评论,你只想保留一个URL,并将其指向某个国家或行业。这就是你在你的情况下所做的:
RewriteEngine on
RewriteRule ^([a-zA-Z0-9_-]+)$ eventlist.php?ic=$1
在您的PHP文件中,如果$_GET['ic']
是一个国家或行业,您应该检查您的数据库/数据。根据检查结果,您可以显示所需的事件。
在这种情况下,真正重要的是:不要忘记每个行业或国家都必须是独一无二的。