你的两个规则都是一样的,第二个规则不起作用,因为第一个规则已经重写了URL。除此之外,规则本身不是逻辑。
你的榜样将执行以下操作:
- domain.com/123将指向eventlist.php I = 123
,如果您移动第二个规则首先,会发生以下情况:
- domain.com/123将指向eventlist.php?c = 123
你怎么知道至极一个把你带到EVENTLIST?
一个工作,并且更逻辑的解决办法是:
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/
编辑的更好:基于您的评论
,你想只保留一个网址并指向一个国家或行业。这是你在你的情况做笏:
RewriteEngine on
RewriteRule ^([a-zA-Z0-9_-]+)$ eventlist.php?ic=$1
在你的PHP文件,你应该检查你的数据库/数据如果$_GET['ic']
是一个国家或行业。根据您的检查结果,您可以显示所需的事件。
在这种情况下非常重要:不要忘记每个行业或国家必须是独一无二的。
这两个重写规则都具有相同的正则表达式模式,第一条规则将捕获所有内容。使用您想要分发给每个规则的示例网址更新您的问题。 –
http:// localhost/10times/eventlist?i = education-training此网址必须转换为http:// localhost/10times/education-training –
http:// localhost/10times/eventlist?c =印度必须将其转换为http:// localhost/10times/india –