Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou quebrado a cabeça para consegui entender o básico de como criar url amigáveis.
Estou fazendo a seguinte coisa para ver se funciona.
tenho esta estrutura de pasta
(Raiz) /
.htaccess
index.php
/view
index.php
No arquivo index.php da raiz tenho um redirecionamento:
<?php
header('location: view/index.php?page=main');
?>
No index.php da view tenho apenas um include para teste:
<?php
if ($_GET['page'] == 'main' || $_GET['page'] == '') {
include './main.php';
}
?>
agora o B.O .htaccess:
<IfModule mod_rewrite.c>
Options +FollowSymlinks
# Options +SymLinksIfOwnerMatch
RewriteEngine On
# RewriteBase /
</IfModule>
<IfModule mod_rewrite.c>
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
</IfModule>
<IfModule mod_rewrite.c>
RewriteCond %{SCRIPT_FILENAME} -d [OR]
RewriteCond %{SCRIPT_FILENAME} -f
RewriteRule "(^|/)\." - [F]
RewriteRule ^view/main/?$ /view/index.php?page=main [NC,L]
</IfModule>
estou usando o initializr é o .htaccess dele.
se possível alguém pode me esclarecer o uso da url amigável. Desde já agradeço.
Ela não funciona, da erro 404.
Alguem poderia me manda um exemplo de como funciona?
Vc está testando na web ou no local host?
Acho que se for no local precisa configurar o sistema...
Se tiver tudo certo e você estiver colocando na URL view/main/ e mesmo assim não funcionar.. eu te recomendo ou treinar com o código gerado pelo site abaixo ou usar ele ou parte dele:
http://www.codigosnaweb.com/Gerador-de-url-amigaveis_82_1-PHP.html
Ele é bem intuitivo e gera o código que você precisa :)
Vlw mano vou testar.
$url = isset($_GET['page']) ? $_GET['page'] : '';
Pessoal comecei a estudar sobre url mais afundo e serio. E me deparei com a seguinte linha acima. Então fiquei em duvida pra que serve o ? nesse caso. Alguém poderia me explicar?
:seta: Operador Ternário
:seta: http://blog.thiagobelem.net/operador-ternario/ achei mais fácil a explicação daqui.
Muito obrigado, entendi.
>
Vlw mano vou testar.
$url = isset($_GET['page']) ? $_GET['page'] : '';
Pessoal comecei a estudar sobre url mais afundo e serio. E me deparei com a seguinte linha acima. Então fiquei em duvida pra que serve o ? nesse caso. Alguém poderia me explicar?
Rapaiz eu acho que isso só serve para você ver a URL que está.
Se por exemplo você incluir um echo e escrever assim la em baixo:
echo $url ;
Vai aparecer dentro da página o endereço que você abriu.
O que faz mesmo a URL se tornar amigável é o htaccess.
Eu entendi pra que serve
Funciona como um if
se tiver valor no get['page'] ele vai usar o valor.
Seria a mesma coisa que isso.
<?php
if(isset($_GET['page']){
$url = $_GET['page'];
}else{
$url = '';
}
?>
Mas qual exatamente sua dúvida? O seu cod. nao funciona?
Derrepente esses links podem te ajudar:
http://wbruno.com.br/php/desmistificando-urls-amigaveis-com-php-e-htaccessapache/
http://blog.thiagobelem.net/aprendendo-urls-amigaveis-com-regras-complexas/