Estou usando o método get para exibir páginas em um site PHP. Tenho categorias de blog e serviços e quero que minha estrutura de URL fique assim:
https://sample.com/
https://sample.com/services
https://sample.com/services/service-a
https://sample.com/blog
https://sample.com/blog/blog-a
Meu arquivo htaccess atual:
RewriteRule ^([0-9a-zA-Z-_]+)$ index.php?page=$1
RewriteRule ^([0-9a-zA-Z_\-]+)/([0-9a-zA-Z_\-]+)$ index.php?page=$1&services=$2
RewriteRule ^([0-9a-zA-Z_\-]+)/([0-9a-zA-Z_\-]+)$ index.php?page=$1&blog=$2 [NC,L]
O problema é que só consigo exibir categorias de serviço, mas não categorias de blog. Como no meu htaccess as duas últimas linhas têm um padrão semelhante, a segunda linha está sendo ignorada; há conflito, a primeira regra sempre vence.
Código PHP:
if(isset($_GET["page"])){
switch($_GET["page"]){
case 'home':
//get home content from db
break;
case 'services':
if(!isset($_GET["services"])){
//gets services content from db
}
else if(isset($_GET["services"]))
{
switch($_GET["services"]){
case 'service-a':
// services/service-a
break;
case 'service-b':
// content services/service-a from db
break;
}
}
break;
case 'blog':
if(isset($_GET["blog"])){
switch($_GET["blog"]){
case 'blog-post-a':
// get content of blog/blog-post-a from db
break;
case 'blog-post-b':
// get content of blog/blog-post-b from db
break;
default;
}
}
else{
//blog page content from db
}
break;
}
}
Como posso resolver isso? Obrigado.