Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou desenvolvendo um CMS para aprendizado, estou com uma dúvida em questão ao tratamento das URLs.
Eu faço envio de todas as requisições e o tratamento dentro do arquivo index.php, isso é uma boa forma de fazer o tratamento?
E a forma que estou tratando as URLs dentro do index está correta ou eu posso melhorar algo. Poderiam me dar sugestões para melhorar o código.
Envio o código de tratamento de URLs do index e meu htaccess.
Options All -Indexes
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*?)$ index.php
RewriteRule ^static/(.*?)$ - [L]
RewriteRule ^painel/(.*)$ index.php
</IfModule>
//Faz o explode da URL
$p_1 = Url::getURL(0);
$p_2 = Url::getURL(1);
if ($p_1 == 'painel') {
if (is_null($p_2)) {
require __PATH__."painel/index.php";
exit();
}
if (file_exists(__PATH__."painel/" . $p_2 . ".php")) {
require __PATH__."painel/" . $p_2 . ".php";
} else {
require __PATH__."404.php";
}
exit();
}
if (is_null($p_1) AND is_null($p_2)) {
require __PATH__."home.php";
exit();
}
if ($p_1 == 'blog') {
if (is_null($p_2)) {
require __PATH__."blog.php";
exit();
} else {
require __PATH__."single-blog.php";
exit();
}
}
$registros = array(
array('id' => 100, 'tipo' => 'paginas', 'url' => 'pagina-do-site'),
array('id' => 130, 'tipo' => 'produtos', 'url' => 'produtos/produto-1'),
);
foreach ($registros as $registro) {
if ($registro['url'] == $p_1) {
if (file_exists(__PATH__ . "paginas.php")) {
require __PATH__ . "paginas.php";
exit();
}
}
if ($registro['tipo'] == $p_1) {
if (!is_null($p_2)) {
$link = $p_1 . '/' . $p_2;
if ($link == $registro['url']) {
if (file_exists(__PATH__ . "single-" . $p_1 . ".php")) {
require __PATH__ . "single-" . $p_1 . ".php";
exit();
}
}
} else {
if (file_exists(__PATH__ . $p_1 . ".php")) {
require __PATH__ . $p_1 . ".php";
exit();
}
}
}
}
require __PATH__."404.php";
exit();Carregando comentários...