Оба ваших правила одинаковы, вторая не работает, потому что первая уже перезаписывает URL. Кроме того, само правило не является логическим.
Ваш пример будет делать следующее:
- domain.com/123 будет указывать на eventlist.php я = 123
Если бы переместить второе правило для во-первых, произойдет следующее:
- domain.com/123 будет указывать на eventlist.php? С = 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/
Edit:
Основываясь на ваш комментарий, вы хотите сохранить только один URL и указать его либо стране, либо отрасли. Это ваты вы делаете в вашем случае:
RewriteEngine on
RewriteRule ^([a-zA-Z0-9_-]+)$ eventlist.php?ic=$1
В файле PHP, вы должны проверить базы данных/данные, если $_GET['ic']
страны или отрасль. По результатам проверки вы можете отобразить необходимые события.
Действительно важно в этом случае: НЕ забывайте, что каждая отрасль или страна должна быть уникальной.
Оба правила перезаписи имеют одинаковый шаблон регулярного выражения, первое правило будет ловить все. Обновите свой вопрос с образцами URL-адресов, которые хотите распределить по каждому правилу. –
http: // localhost/10times/eventlist? I = education-training этот url должен быть преобразован в http: // localhost/10times/education-training –
http: // localhost/10times/eventlist? C = india должен преобразуется в http: // localhost/10times/india –