Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Blod

URL Amigável

Recommended Posts

Tenho a seguinte configuração no meu arquivo .htaccess

RewriteRule ^noticias/([a-z0-9-]+)/([0-9]+)/?$ /noticias.php?id=$2&nome=$1 [NC]
//Isso da www.meusite.com/produtos/camiseta-azul/2/

 

Porém, na página index o link para a noticia continua (www.meusite.com/noticias.php?id=2&nome=como fazer tal coisa)

 

Gostaria de poder criar uma expressão que deixasse o nome da notícia no formato do link da URL amigável, mas não estou obtendo sucesso. Alguém sabe como ajudar ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ué, edita a parte em que o código é colocado na página...

Procura aí essa parte, e se não conseguir resolver, posta aqui ..

[to saindo agora, mas deixa aí que se até amanhã não conseguir resolver, eu devo dar uma olhada ;)]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Thiago e realmente essa parte do php que não estou conseguindo, a de formatar a url do link como a da URL Amigável. E wanderson, não estou com problema na URL Amigavem em si mais no php.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, deve ter uma parte tipo:

 

<a href="www.seusite.com.br/?id=<?php echo $noticia; ?>">clique aqui</a>

aí é só apagar esse ?id=

Mas cara, você tem que achar onde está o erro, senão é impossível tentarmos de ajudar da forma certa...

Compartilhar este post


Link para o post
Compartilhar em outros sites

no meu .htaccess esta assim

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?pg=$1

#e ja fiz assim tb, E NÃO DEU CERTO:s
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php?pg=$1

 

e ja ativei o modo Rewrite no apache

 

e la na index color um print_r($_GET['pg']);

e ele não fica na mesma pagina, como se esse modulo de não acessar diretorio diretamente não estive-se funcionando

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posta as páginas aqui para a gente ver.

 

 

eu não criei nem pasta ainda, eu fiz o teste apenas na get

para ver se ele retornava a varial. assim

 

teste/index.php?pg=empresa

#assim traz(logico)
print_r($_GET['pg']);

 

mas assim não traz nada

teste/empresa/

print_r($_GET['pg']);

 

 

eo .htaccess esta assim

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?pg=$1

#e ja fiz assim tb, E NÃO DEU CERTO:s
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php?pg=$1

eo modulo rewrite no apache esta habilitado :s

Compartilhar este post


Link para o post
Compartilhar em outros sites

@erison, é incorreto usar print_r() para essa situação, pois ele serve pra exibir arrays. Print_r() exibe informação sobre uma variável em uma maneira que é legível para humanos.

 

Você deve fazer do seguinte jeito no seu .htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^([a-z0-9-]+)/?$ /index.php?secao=$1 [NC]
</IfModule>

E na index.php:

<?php
echo $secao;
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

deu certo não.

ele tinha que retorna $_GET['sessao'] e não

$sessao.(como ele vai exibir algo que não foi definido.)

 

eu sei que o print_r() e para exibir um array

 

se no caso tiver varios get, ele vai me retorna uma array.

 

mas o problema e que quando digito

se eu colocar teste/?pg=empresa

echo $_GET['pg'](ele vai retorna empresa)

 

se eu colocar assim

teste/empresa

ele nem fica na mesma pagina ele sai como se ele estivese procurando a pasta empresa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu to fazendo o teste local e eu ja digetei asism

http://localhost/paginas/emrpesa

 

mas ele não retorna o get

 

ele mostra na pagina

 

Not Found

 

The requested URL /paginas/empresa was not found on this server.

 

e como se ele estive-se procurando a index da pasta empresa

Compartilhar este post


Link para o post
Compartilhar em outros sites

cria a index.php. empresa.php e home.php

 


       RewriteEngine On
       RewriteRule ^([a-z0-9-]+)/?$ /index.php?page=$1 [NC]

 

<?php
switch ($_GET['page'])
{                       
case "empresa":
include("empresa.php");
break;

default:
include("home.php"); 
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara mas ele não fica na mesma pagina. ele procura o diretorio dentro da pasta empresa

 

como se ele não tive-se reconhecendo as condições do htaccess

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara eu to falando você não itende, deixa pra lá

Compartilhar este post


Link para o post
Compartilhar em outros sites

para que colocar a spaginas dentro da pasta

 

<?php
switch ($_GET['page'])
{                       
case "empresa":
include("../paginas/empresa.php");
break;

default:
include("../paginas/home.php"); 
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara não tem como eu trabalhar em cima do $_GET['page'], se ele não retorna nada.

 

ele mostra not fould, ou seja se eu digitar http://localhost/paginas/index.php?page=empresa

 

o $_GET['page'] vai mostra empresa

 

mas se eu colocar

 

http://localhost/paginas/empresa

 

ele mostra not fould, como se não tive-se reconhecendo o htacces.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.