Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá a todos. Gostara que a comunidade pudesse me ajudar, se for possível é claro!
Estou construindo um sistema mas não estou conseguindo colocar a url das páginas como URL amigável.
Li alguns tutoriais mas não foi possível a resolução da questão.
Vocês podem me ajudar ?
Segue páginas
Bom dia Omar.... :)
Obrigado pela ajuda.
Minha "index.php" é a página de login , daí vai pra página de verificação "verifica.php", se for true, "restrita_cadas.php"(página principal).
Também possuo uma página nesse formato "restrita_user.php?id=3", você também pode me ajudar nessa questão ?
Omar, as páginas que não têm id na url deram certo. Ficou dessa maneira:
*RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^restrita_user-([0-9]+)$ restrita_user.php?id=$1 [NC]
RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteRule ^([^\.]+)$ $1.html [NC,L]*
Muito obrigado pela dica.
Agora, não consegui o mesmo feito nessas páginas abaixo.
Gostaria que elas ficassem nesses formatos você poderia me ajudar em mais essa questão ?
http://localhost/edita_credenciado.php?id=1
http://localhost/edita_credenciado/1
http://localhost/edita_funcionario.php?id=1
http://localhost/edita_funcionario/1
http://localhost/restrita_user.php?id=3
http://localhost/restrita_user/3
Por exemplo:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z,0-9,A-Z,_-]+)\/?$ index.php?a=$1 [NC,L]
RewriteRule ^([a-z,0-9,A-Z,_-]+)\/([a-z,0-9,A-Z,_-]+)\/?$ index.php?a=$1&b=$2 [NC,L]
Digamos então
http://endereco/restrita_user/
No index eu requisito o arquivo restrita_user.php desse modo
$_GET['a']
Seguindo a lógica se for **http://endereco/restrita_user/3**
Que dar mo mesmo que **http://endereco/index.php/?a=restrita_user&b=3**
Então quer dizer que posso consultar o segundo valor da url em restrita_user.php desse modo
**isset($_GET['b']) {**
** echo $_GET['b']; // Isso é só o exemplo que no caso estou dando um echo no valor**
**}**
Eu particularmente prefiro sempre fazer o hacess desse modo
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1
Só que nesse caso independente da url inserida só tem 1 parâmetro então para pegar cada valor deve-se filtrar os dados a cada ocorreria de uma certo caractere
Exemplo se a url for:
https://endereco/artigos/categoria/postagem/tipo/relacao
Quer dizer que só terei um único valor sendo
**$_GET['url'];** que é "**artigos/categoria/postagem/tipo/relacao**"
<?php
/*
* Obs.: isso é só um básico de como seria para pegar cada valor de uma string no caso a url inserida
*/
function quebarUrl () {
$filter = filter_input(INPUT_GET, 'url', FILTER_DEFAULT);
$setUrl = empty($filter) ? 'home' : $filter;
$arr = explode('/', $setUrl);
return array_filter($arr);
}
Assim sendo eu tenho um array com cada índice contendo a string que aparece a cada ocorrência da barra
**$arr[0]; // artigos**
**$arr[1]; // categoria**
**$arr[2]; // postagem**
**$arr[3]; // tipo**
**$arr[4]; // relacao**
Caso não exista alguma entrada eu só terei um índice 0 que é home.
De qualquer forma trazer um único índice para tratar cada entrada requer mais atenção para projetar a estrutura do website, como diretório base filtros de entrada caso contrário é meter os pés pelas mãos.Bom dia Omar...
Talvez esteja construindo o site de uma forma diferente da sua.
Você poderia verificar o código ? Claro, se estiver disponível..
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z,0-9,A-Z,_-]+)\/?$ index.php?parametro=$1 [NC,L]
Como seus arquivos estão todos "embolados" na raiz só passei a condição de uma camada do GET mesmo no htacess
Digamos que queira acessar o cadastro.php
seu link é mais ou menos assim não é? <a href="cadastro.php"
Pois é usando o htacess acima você vai referenciar o acesso assim