Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá..
Estou começando a aprender a trabalhar com URL's Amigaveis mas estou apanhando um pouco...
Vou postar minhas duvidas...
O arquivo .htacess eu preciso colocar em todas pastas?
Eu tenho uma pasta chamada REVISTA onde dentro dessa pasta eu tenho o arquivo LER.PHP
Quando eu quero ler uma matéria o link fica assim: www.meusite.com.br/revista/ler.php?codMateria=35
Eu estou aplicando URL AMIGAVEL para o link ficar assim: www.meusite.com.br/revista/35/como-usar-urls/ (exemplo)
Só que não está funcionando...
Na pasta REVISTA eu tenho um .htaccess com o código:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule revista/(.)/(.) /ler.php?codMateria=$1&titulo=$2
Só que quando eu vou acessar pelo link www.meusite.com.br/revista/35/como-usar-urls/
ele da esse erro:
Objeto não encontrado!
A URL requisitada não foi encontrada neste servidor. Se você digitou o endereço (URL) manualmente, por favor verifique novamente a sintaxe do endereço.
Se você acredita ter encontrado um problema no servidor, por favor entre em contato com o webmaster.
Error 404
localhost
09/02/10 15:48:49
Apache/2.2.6 (Win32) DAV/2 mod_ssl/2.2.6 OpenSSL/0.9.8e mod_autoindex_color PHP/5.2.4
Obrigado..
Usei essa função que você postou e deu isso:
Erro interno do Servidor!
O servidor encontrou um erro interno e não foi possível completar sua requisição. O servidor está sobrecarregado ou existe um erro em um script CGI.
Se você acredita ter encontrado um problema no servidor, por favor entre em contato com o webmaster.
Error 500
localhost
09/03/10 12:23:33
Apache/2.2.6 (Win32) DAV/2 mod_ssl/2.2.6 OpenSSL/0.9.8e mod_autoindex_color PHP/5.2.4
tenta assim:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.)/(.)$ /ler.php?codMateria=$1&titulo=$2
eu não testei o script, senão der certo, assiste essa video aula aqui:
Eu estou usando assim:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.html$ $1\.php
RewriteRule ^revista/(.+)/(.+)$ revista/ler.php?codMateria=$1&titulo=$2
Agora ele acessou corretamente a pasta REVISTA e abriu o arquivo LER.PHP com a noticia correta. Só que tem um problema, por exemplo eu acessei o link www.meusite.com/revista/25/como-tudo-acontece/ ele abre correto a pagina só os links da minha pagina estao ficando assim www.meusite.com/25/index.php e as imagens, folha de estilo não estão abrindo...
Para solucionar este problema, utilize em suas páginas a tag <base />:
http://forum.imasters.com.br/public/style_emoticons/default/seta.gif http://www.w3schools.com/tags/tag_base.asp
http://forum.imasters.com.br/public/style_emoticons/default/joia.gif
O arquivo .htaccess pode ficar na raiz do seu site. e Você não está "escapando as barras" com barras invertidas "\" - desta forma "\/"
sua estrutura é esta:
www.meusite.com.br/revista/ler.php?codMateria=35
e quer deixar assim:
www.meusite.com.br/revista/35/como-usar-urls/
e você fez isso:
RewriteRule ^revista\/(.)/\(.)\/$ revista/ler.php?codMateria=$1&titulo=$2
Dê uma estudada a respeito de espressões regulares. Pois, (.*): diz que pode existir este conteúdo "ou não", já (.+): exige que exista o valor, seja qual for.
Bom é isso. teste aí.. ;)