• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Gonçalo_ssb

Links amigaveis com .htaccess

33 mensagens neste tópico

Bom dia,

Foi-me sugerido a inserção que investigasse um pouco sobre "links amigáveis" e como tal eu pesquisei e achei bastante interessante. Encontrei alguns exemplos, contudo não estou a conseguir implementar.

Eu coloquei o seguinte código no ficheiro .htaccess localizado na raiz do site.

RewriteEngine on

RewriteRule ^([a-z,0-9,A-Z,_-]+)$ /main.php?conteudo=4

O objectivo será conter um link deste género

http://www.dominio.pt/teste/4

ao invés de

http://www.dominio.pt/teste/main.php?conteudo=4

O que estarei a fazer mal.

Obrigado.

Gonçalo Ferraria.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

RewriteEngine on

RewriteRule ^/teste/([a-z,0-9,A-Z,_-]+)$ /teste/main.php?conteudo=$1

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Experimentei com os nomes iguais e nada. Mas o htaccess funciona com as linhas para inibir de mostrar o conteúdo das pastas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se estiveres a trabalhar com WAMP/XAMPP, os caminhos do .htaccess têm de ser como se ele estivesse na root da pasta www/htdocs. B)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ele está na pasta htdocs, criei lá a pasta teste e com o ficheiro main.php.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

SONIC, quais são os conteúdos do teu .htaccess, que links estás a tentar aceder e quais os resultados?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tenho isto:

Options -Indexes
Options +FollowSymLinks

RewriteEngine on
RewriteRule ^/teste/([a-z,0-9,A-Z,_-]+)$ /teste/main.php?conteudo=$1

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É cópia do que está lá em cima, e como tal o código está correcto.

Na tua pasta do webserver, na raiz, tens de ter uma pasta chamada 'teste', em que lá dentro tens um ficheiro chamado main.php.

Para fins de debug, coloca no teu 'main.php' o seguinte conteúdo:

<?php var_dump($_GET) ?>

e depois tenta aceder ao url, por exemplo (notar que não leva uma barra final)

http://localhost/teste/coolstuff

deve-te aparecer na página 'coolstuff' e mais umas coisas adicionadas pelo PHP.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E se tentares aceder directamente ao documento, dá alguma coisa? ou seja aceder ao main.php directamente?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A linha não estava comenta e ainda substitui o "AllowOverride None" por "AllowOverride All" e continua tudo na mesma. Já reiniciei o xampp e não resulta:(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Última tentativa da minha parte:

Comenta ou remove temporariamente essas duas linhas iniciais que tens no teu .htaccess (o ficheiro tem o nome "ponto htaccess"), e vê se dá.

Se isso não dá, sinceramente não sei o que possa ser. Não acedas aos urls amigáveis com uma barra no fim, visto que a regra não apanha esse caso, para o apanhar utilizarias

^/teste/([a-z,0-9,A-Z,_-]+)([/]?)$

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Continua sem dar. Experimentei esse exemplo com barra mas nada. B)

Obrigado pela ajuda. :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Verifica a configuração do servidor e vê se o servidor tem o módulo activado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já o verifiquei como o softclean disse nesta mensagem:

Lembrei-me que podes ter essa função inactiva. Se usares o XAMP ou similar (ou até mesmo o Apache), tens de editar o httpd.conf

http://rudyegenias.wordpress.com/2006/08/21/enabling-mod-rewrite-in-xampp/

Vê se aquela linha do mod_rewrite está activa (ou seja, sem um cardinal no inicio da linha, tal como na página).

Ou não é isto?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim.

Ui .. get ready for some headaches :P

Tens windows a correr com um server tipo xampp / wampp?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora