Jump to content


Photo

Urls Amigaveis


  • Faça o login para participar
11 replies to this topic

#1 wawasurf

wawasurf

    Wawasurf

  • Usuários
  • 257 posts
  • Sexo:Masculino
  • Localidade:Criciuma

Posted 27/02/2008, 14:29

Andei pesquisando aqui no foreum e na internet, sobre urls amigaveis, achei varios exemplos, mais nao consigo de jeito nenhum fazer funcionar pelo .htaccess.

Vou explicar como estou fazendo...

tenho essa url no meu site

http://www.meusite.c...r.php?codigo=38

e quero que a url fique assim

http://www.meusite.c.../novo/sombra/38

Entao peguei meu .htaccess e escrevi nele esse código

RewriteRule sombra/(.*)/(.*)$ sombra_ver.php?codigo=$1 [L]

Mais nao esta dando certo, a url fica a mesma coisa como estava antes (http://www.meusite.c...r.php?codigo=38)

Gostaria que me ajudasse a me dizer onde esta o erro.

Obrigado desde já!
Wagner Machado Martins
Webmaster
Agência Gigante
Criciúma - SC

#2 kaduzick

kaduzick

    12 Horas

  • Usuários
  • 229 posts
  • Sexo:Masculino
  • Localidade:Brasília
  • Interesses:Aprender e Ajudar

Posted 27/02/2008, 15:54

Boa tarde,

você já verificou se o APACHE está permitindo rewrite?
Para saber verifique a configuração no arquivo httpd.conf deve possuir as seguintes linhas
LoadModule rewrite_module modules/mod_rewrite.so
AddModule mod_rewrite.c

Se já estiver assim eu aconselharia verificar a quantidade de (.*), pois você está mandando apenas 1 sendo que a URL espera por dois. Fazendo com que a URL enviada não bata com a esperada.

Abraços.
kaduzick - The Nerds

#3 wawasurf

wawasurf

    Wawasurf

  • Usuários
  • 257 posts
  • Sexo:Masculino
  • Localidade:Criciuma

Posted 27/02/2008, 16:37

Hmm tens razao kaduzick, entao ficaria assim?

RewriteRule sombra/(.*)/$ sombra_ver.php?codigo=$1 [L]

O apache esta permitindo sim o rewrite.

Obs.: O meu site nao está no diretorio raiz, está nessa pasta /novo, será que o .htaccess tem que estar no /novo tbm? Pois o .htaccess se encontra no diretório raiz do site.

Precisa fazer alguma coisa no php, ou só no .htaccess mesmo ja funciona?
Wagner Machado Martins
Webmaster
Agência Gigante
Criciúma - SC

#4 lwirkk

lwirkk

    Veterano

  • Usuários
  • 1314 posts
  • Sexo:Não informado

Posted 27/02/2008, 16:43

Hmm tens razao kaduzick, entao ficaria assim?

RewriteRule sombra/(.*)/$ sombra_ver.php?codigo=$1 [L]

O apache esta permitindo sim o rewrite.

Obs.: O meu site nao está no diretorio raiz, está nessa pasta /novo, será que o .htaccess tem que estar no /novo tbm? Pois o .htaccess se encontra no diretório raiz do site.

Precisa fazer alguma coisa no php, ou só no .htaccess mesmo ja funciona?

Não, ex.:
Se tenho:
/ - raiz
/novo - pasta NOVO

e tiver um .htaccess na raiz, com modrewrite, e não tiver nenhum .htaccess na NOVO desativando o MODREWRITE para a pasta novo, então o da raiz servirá para todas as pastas.
Posted Image
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."

Muito Obrigado à todos do fórum, e à toda equipe do fórum! =)

#5 wawasurf

wawasurf

    Wawasurf

  • Usuários
  • 257 posts
  • Sexo:Masculino
  • Localidade:Criciuma

Posted 27/02/2008, 16:51

Hmm legal, entao esta certo como esta ali.

Mais ainda sim naum esta funcionando

RewriteRule sombra/(.*)/$ sombra_ver.php?codigo=$1 [L]

Tem que fazer alguma coisa no no arquivo sombra_ver.php tbm?
Wagner Machado Martins
Webmaster
Agência Gigante
Criciúma - SC

#6 lwirkk

lwirkk

    Veterano

  • Usuários
  • 1314 posts
  • Sexo:Não informado

Posted 27/02/2008, 17:24

Sim, isso você manda a query para o arquivo PHP, mas o arquivo irá receber a URL e nele você faz as coisas com a URL.
Ex.:
$url=explode("/".$_SERVER['REQUEST_URI']);

se colocar
http://www.meusite.com.br/novo/sombra/38
seria:
echo $url[0]; // 38

Edição feita por: lwirkk, 27/02/2008, 17:28.

Posted Image
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."

Muito Obrigado à todos do fórum, e à toda equipe do fórum! =)

#7 wawasurf

wawasurf

    Wawasurf

  • Usuários
  • 257 posts
  • Sexo:Masculino
  • Localidade:Criciuma

Posted 28/02/2008, 09:00

Me desculpe, mais nesse assunto sou um pouco leigo ainda, tipo...

Tenho ese código aqui (sem url amigavel)...

<?

require_once ("../admin/conecta.php");

$sql="SELECT * FROM sombra ORDER BY codigo DESC";

$query=mysql_query($sql);

while($sql = mysql_fetch_array($query)){
$codigo =	  $sql["codigo"];
$titulo =	  $sql["titulo"];
$texto =	   $sql["texto"];

$previa = "$texto";

echo"<br /><br />

<strong>$titulo</strong><br /><br />";
echo substr_replace($previa, '...<a href=sombra_ver.php?codigo='.$codigo.' class=noticia> <br /><br />
<strong>Ver [+]</strong> </a><br /><br /><img src="../noticias/reta.jpg" /><br /><br />', 200); // MOSTRA "No wmonline n&oacute;s conseguimos..."
}

?>

Como eu faço para implementar isso que você disse no meu código?

Edição feita por: wawasurf, 28/02/2008, 09:01.

Wagner Machado Martins
Webmaster
Agência Gigante
Criciúma - SC

#8 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 28/02/2008, 11:18

A condição seria essa:
RewriteRule sombra/(.*)/(.*)$ sombra_ver.php?codigo=$2 [L]

O retrovisor usado é o segundo ... o primeiro pega "sombra" ...

E como você está usando diretório teria que colocar antes do sombra:

RewriteBase	/novo/
RewriteRule sombra/(.*)/(.*)$ /novo/sombra_ver.php?codigo=$2 [L]

Teste e depois faça isso na página php:
var_dump($_GET);

Poste o resultado dessa super global ...
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#9 wawasurf

wawasurf

    Wawasurf

  • Usuários
  • 257 posts
  • Sexo:Masculino
  • Localidade:Criciuma

Posted 28/02/2008, 11:29

Bimonti,

Fiz o que você falou e me retornou isso

array(0) { }

Era o que você esperava?
Wagner Machado Martins
Webmaster
Agência Gigante
Criciúma - SC

#10 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 29/02/2008, 07:23

Não era isso não ... no final da condição troca a flag, coloca isso:
[L,QSA]

Se você quiser, coloque o seu arquivo .htaccess inteiro pra gente dar uma olhada.
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...

#11 wawasurf

wawasurf

    Wawasurf

  • Usuários
  • 257 posts
  • Sexo:Masculino
  • Localidade:Criciuma

Posted 29/02/2008, 08:09

Quando eu coloquei isso [L,QSA] que vc falou, a pagina nao achou nenhum css e os includes do php deram erro. Da uma olha do .htaccess...


RewriteEngine on
# -FrontPage-

IndexIgnore .htaccess */.??* *~ *# 

*/HEADER* */README* */_vti*

<Limit GET 

POST>
order deny,allow
deny from all
allow from all
</Limit>
<Limit PUT 

DELETE>
order deny,allow
deny from all
</Limit>
AuthName 

www.meusite.com.br
AuthUserFile 

/home/meusite/public_html/_vti_pvt/serv

ice.pwd
AuthGroupFile 

/home/meusite/public_html/_vti_pvt/serv

ice.grp
RewriteCond %{HTTP_HOST} ^.*$
RewriteRule ^/?$ 

http://meusite.com.br/novo 

[R=301,L]

RewriteCond %{HTTP_HOST} 

^.*$
RewriteRule 

^cadastro_de_curriculum.php$ 

http://meusite.com.br/novo/ca

dastro_de_curriculum.php [R=301,L]



RewriteBase	/novo/
RewriteRule sombra/(.*)/(.*)$ 

/novo/sombra_ver.php?codigo=$2 [L,QSA]

Edição feita por: wawasurf, 29/02/2008, 08:10.

Wagner Machado Martins
Webmaster
Agência Gigante
Criciúma - SC

#12 wawasurf

wawasurf

    Wawasurf

  • Usuários
  • 257 posts
  • Sexo:Masculino
  • Localidade:Criciuma

Posted 03/03/2008, 11:46

Pq não esta carregando os css e os includes qdo eu coloco o [L,QSA]?
Wagner Machado Martins
Webmaster
Agência Gigante
Criciúma - SC




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq