iMasters Fóruns: URLs amigáveis - iMasters Fóruns

Ir para

Bom uso da área



Atenção:
Este subfórum é destinado apenas para postagem de artigos, tutoriais e matérias sobre PHP.
Não é permitido a abertura de tópicos com dúvidas. Para isso, use o Fórum de PHP.
  • (2 Páginas)
  • +
  • 1
  • 2
  • Novo tópico
  • Responder

URLs amigáveis

#1 Membro offline   Perfect Lion Ícone

  • TOMA A PATADA DO LION ´0:
  • Ícone
  • Grupo: Membros
  • Posts: 857
  • Cadastrado: 29-outubro 04
  • Localização:São Bernardo do Campo/SP

Postou 23 novembro 2006 - 08:28

Fala galera tudo certo?

Bem para quem não conhece esse conceito irei dar uma explicadinha aqui.

O que são URLs amigáveis?
São urls fáceis de se decorar e tbm algo mais legível para um bot de sistema de busca..
ex: de url amigável

http://www.seusite.c...php100erro.html
http://www.seusite.c...12/2005/all/php

Bem no 1° caso iríamos acessar o artigo e mostrar o conteúdo do artigo do id 33 e no 2° caso iríamos listar todos os artigos da seção PHP

Agora me fala uma coisa essas urls não são muito mais fácil de se ler do que isso:


http://www.seusite.c...&...=show&id=33
http://www.seusite.c...&...l&categ=php

Veja que isso fica cheio de coisas que para o usuário não é interessante.. e tbm complica a vida para se decorar algo assim.. fora que nos bot de buscadores isso para eles não é nada. Porque não é nada. nessa url ai ele interpreta como nada... já nos caso da URLs amigáveis é outra história..

No caso das URLs amigáveis ele vai ler parte por parte da sua url e fazendo assim um mapeamento de palavras chave então se você tem lá /artigos/ ele sabe que existe uma pasta em seu servidor que é referente artigos então na hora de encontrar algo sobre artigos no sistema dele ele vai dar mais relevância a sua pagina por conter uma pasta que pode haver o que você quer dentro dele.. Mais eu já vou avisando que não é só isso que faz seu site ficar entre os primeiros links há outras coisas por traz como por exemplo usar WebStandards que são a maneira correta de se usar as tags do HTML para se criar uma pagina

Bem chega de filosofia e bora a pratica :P

O que temos que fazer para ter essas urls amigáveis?
Antes de tudo vamos lembrar que isso só funciona com servidores APACHE ok?

Antes de mais nada verifique se no "httpd.conf" do APACHE o "mod_rewrite.so" sem espaços está habilitado ele provavelmente está assim:

#LoadModule rewrite_module modules/mod_rewrite.so

Se tiver descomente ele tirando o (#) da frente salve o arquivo e restarta o APACHE para que ele reconheça esse modulo

Bem para podermos criar essas URLs amigáveis temos que configurar a pasta onde queremos que nela se tenha essas urls achegáveis.. então iremos configurar um ".htaccess" sem (") nele temos que colocar o seguinte:

Quote

# << URLs Amigaveis

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .(/)?$ /html/seuuser/www/index.php

# >> URLs Amigaveis


Vamos explicar o que está acontecendo aqui:

Quote

* Comentário
# << URLs Amigaveis
* verifica se o modulo rewrite está habilitado se sim executa o bloco dentro

* habilita o modulo Rewrite
RewriteEngine On
* Indica qual é a pasta base de todo o conteudo
RewriteBase /
* Verifica se a url digitada é um arquivo caso seja para aqui
RewriteCond %{REQUEST_FILENAME} !-f
* Verifica se a url digitada é uma pasta caso seja para aqui
RewriteCond %{REQUEST_FILENAME} !-d
* Mostra o caminho completo do meu arquivo index.php que caso nenhum desses comandos assim seja valido vai para ele.
RewriteRule .(/)?$ /html/seuuser/www/index.php
* fecha verificador

* comentário
# >> URLs Amigaveis


Bem até ai tudo certo Ok?
Agora Salve o arquivo lembrando que onde você jogar essa arquivo todas as pastas depois dele terão essas configuração...

Bem crio o seu index.php e nele coloque algo como "Estou Na HOME"

Agora vamos testar para ver se está funcionando. Abre o seu navegador e teste colocando o seguinte.:

http://www.seusite.com.br/

Vai mostrar Estou Na HOME

agora digite

http://www.seusite.com.br/teste

Vai mostrar Estou Na HOME

então já está funcionando.. a e lembrando que se existi-se essa pasta teste em seu servidor ele iria acessar a pasta normalmente sem problema algum ;)

Agora como podemos trabalhar com essas urls amigáveis? agora é no index.php que o negocio vai começar a ter vida.

Abra o index.php e vamos programar nele o seguinte.

Quote


#:: URL amigaveis
$gets = explode("/",str_replace(strrchr($_SERVER["REQUEST_URI"], "?"), "", $_SERVER["REQUEST_URI"]));
?>


O que temos ai?
Nessa linha ele está recuperando um array do conteudo depois do http://www.site.com.br/->aqui então imagina que você digito...

http://www.seusite.com.br/teste/meu

ele vai retorna um array assim

Quote

array(
"",
"teste",
"meu"
)


Então você já tem todas as partes da url certo então vamos dizer que essa url abaixo acessa a seção artigos

http://www.seusite.com.br/artigos

quem ver essa url pensa que é uma pasta artigos que há em seu servidor mais na verdade não é claro que se haver uma pasta artigos ele irá entrar na pasta

Quando recuperamos isso termos o seguinte:

Quote

array(
"",
"artigos"
)


Então vamos dizer que temos o arquivo chamado artigos em nosso servidor dentro da pasta includes/ e ele é responsável pela configuração da sessão artigos como funções métodos dentre outras coisas.

ai faríamos o seguinte:

Quote


#:: URL amigaveis
$gets = explode("/",str_replace(strrchr($_SERVER["REQUEST_URI"], "?"), "", $_SERVER["REQUEST_URI"]));
#:: Elimita o 1° tem da array que no nosso caso é sempre vazio
array_shift($gets);
if(file_exists("includes/adm." . $get[0] . ".php")){
require ("includes/adm." . $get[0] . ".php");
}else{
echo "você ESTÁ NA HOME";
}
?>


E o que aconteceu?
ao acessar o http://www.seusite.com.br/artigos se existir a pasta ele entra na pasta caso não exista a pasta ele vai executar o script index.php e vai verificar se esse arquivo artigos existe dentro da pasta includes/ no seu servidor se sim ele vai incluir ele ;)

Sako?

Bem está ai prontinho e funfando ^^ a e quanto ao método $_GET e $_POST continuam funcionando normal

Atenção:
Há uma desvantagem em usar URLs amigáveis você tem que em todos os links colocar o cominho completo para ele ex: você tem um menu e nele tem os seguinte links

/categorias
/php

se você tentar acessar assim ele não vai acessar pois imagina que você esteja no link http://www.site.com....inhavo/com/voce

quando você tentar acessar esses links acima ele vai fazer isso:

http://www.site.com....voce/categorias
http://www.site.com....vo/com/voce/php

Então você viu que num rola ;) para funcionar você tem que colocar o link todo

http://www.site.com.br/categorias
http://www.site.com.br/php ;)

Bem é isso ai até mais galera

#2 Membro offline   Fabyo Ícone

  • Ícone
  • Grupo: Masters
  • Posts: 5758
  • Cadastrado: 08-outubro 04
  • Sexo:Masculino
  • Localização:Ribeirão Pires - SP

Postou 23 novembro 2006 - 08:40

Show de bola :joia:

#3 Visitante_Adailton_*

  • Grupo: Visitantes

Postou 23 novembro 2006 - 09:01

muito bom...Parabens

#4 Membro offline   weslleysolo Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 361
  • Cadastrado: 16-março 06
  • Sexo:Masculino
  • Localização:Serra/ES

Postou 23 novembro 2006 - 11:06

pra criar o aquivo .htaccess eu uso o bloco de notas? se sim da erro diz pra mim colocar um nome de arquivo...

#5 Membro offline   Perfect Lion Ícone

  • TOMA A PATADA DO LION ´0:
  • Ícone
  • Grupo: Membros
  • Posts: 857
  • Cadastrado: 29-outubro 04
  • Localização:São Bernardo do Campo/SP

Postou 23 novembro 2006 - 11:19

Opa aqui eu consigo criar pelo bloco de notas..
Tenta mudar a codificação

#6 Membro offline   weslleysolo Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 361
  • Cadastrado: 16-março 06
  • Sexo:Masculino
  • Localização:Serra/ES

Postou 23 novembro 2006 - 11:35

desculpa mas naum entendi.

#7 Membro offline   Perfect Lion Ícone

  • TOMA A PATADA DO LION ´0:
  • Ícone
  • Grupo: Membros
  • Posts: 857
  • Cadastrado: 29-outubro 04
  • Localização:São Bernardo do Campo/SP

Postou 23 novembro 2006 - 11:45

Faz assim..

clica em salvar como...depois no rodapé há 3 campos

Nome do arquivo:
Salvar como tipo:
Codificação:

No Salvar como tipo coloca "Todos os arquivos" e ai sim você coloca o nome .htaccess e manda salvar ..

caso nao deixe salvar muda a codificação para algum ai.. para ver se ele livera mais num sei não ^^ :P pois o caso acima é o certo

#8 Membro offline   weslleysolo Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 361
  • Cadastrado: 16-março 06
  • Sexo:Masculino
  • Localização:Serra/ES

Postou 23 novembro 2006 - 11:48

hihi....antes de você me responder eu consegui, realmente era assim!!! Valeu lion - Visao alem do alcance, heim..hehehe

#9 Membro offline   MatheusWC Ícone

  • :D
  • Ícone
  • Grupo: Membros
  • Posts: 166
  • Cadastrado: 21-junho 06
  • Localização:Itajaí - Santa Catarina - Brasil

Postou 23 novembro 2006 - 13:35

Tipo sobre a questão do

Quote

se você tentar acessar assim ele não vai acessar pois imagina que você esteja no link http://www.site.com....inhavo/com/voce

quando você tentar acessar esses links acima ele vai fazer isso:

http://www.site.com....voce/categorias
http://www.site.com....vo/com/voce/php

Então você viu que num rola wink.gif para funcionar você tem que colocar o link todo

http://www.site.com.br/categorias
http://www.site.com.br/php wink.gif


basta fazer o seguinte, no final do RewriteRule coloca um [QSA,L] no final... exemplo:

Quote

RewriteRule ^([^/]*)\/?$ /index.php?opc=$1 [QSA,L]


#10 Membro offline   Perfect Lion Ícone

  • TOMA A PATADA DO LION ´0:
  • Ícone
  • Grupo: Membros
  • Posts: 857
  • Cadastrado: 29-outubro 04
  • Localização:São Bernardo do Campo/SP

Postou 23 novembro 2006 - 14:11

Mais ai você teria que criar um para cada sessão isso ai.. e eu queria eliminar isso saka? fazer um sem ter que ficar colocando mais isso ai

#11 Membro offline   Epyllion Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 155
  • Cadastrado: 05-janeiro 06

Postou 23 novembro 2006 - 16:55

Parabéns, Érick !
Ótimo tutorial !

#12 Membro offline   Perfect Lion Ícone

  • TOMA A PATADA DO LION ´0:
  • Ícone
  • Grupo: Membros
  • Posts: 857
  • Cadastrado: 29-outubro 04
  • Localização:São Bernardo do Campo/SP

Postou 24 novembro 2006 - 13:01

Valeu =)

#13 Membro offline   MagicalTrevor Ícone

  • =DDD
  • Ícone
  • Grupo: Membros
  • Posts: 96
  • Cadastrado: 27-setembro 06

Postou 24 novembro 2006 - 13:22

ow kra, aki funcionou, soh q tipow
se eu uso soh www.site.com.br/dicas ele vai normal, mais se eu coloko assim: www.site.com.br/dicas/ ele perde o CSS, os Javascripts, e as imagens
sabe pq??

#14 Membro offline   Perfect Lion Ícone

  • TOMA A PATADA DO LION ´0:
  • Ícone
  • Grupo: Membros
  • Posts: 857
  • Cadastrado: 29-outubro 04
  • Localização:São Bernardo do Campo/SP

Postou 24 novembro 2006 - 14:18

Foi o que eu disse .. você tem que colocar o link completo =). ...

#15 Membro offline   MagicalTrevor Ícone

  • =DDD
  • Ícone
  • Grupo: Membros
  • Posts: 96
  • Cadastrado: 27-setembro 06

Postou 24 novembro 2006 - 15:27

agora foiii
vlw kra

#16 Membro offline   weslleysolo Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 361
  • Cadastrado: 16-março 06
  • Sexo:Masculino
  • Localização:Serra/ES

Postou 27 novembro 2006 - 09:34

lion, outra pergunta... essa parte

RewriteRule .(/)?$ /html/seuuser/www/index.php

você disse que é o caminho que esta o arquivo index, certo? eu coloco o endereço e naum funciona

no meu caso ta assim :

C:\Apache\htdocs\teste2\index.php ◄ ta errado?

#17 Membro offline   Perfect Lion Ícone

  • TOMA A PATADA DO LION ´0:
  • Ícone
  • Grupo: Membros
  • Posts: 857
  • Cadastrado: 29-outubro 04
  • Localização:São Bernardo do Campo/SP

Postou 27 novembro 2006 - 13:01

tenta uma dessas:

RewriteRule .(/)?$ /htdocs/teste2/index.php
RewriteRule .(/)?$ C:\Apache\htdocs\teste2\index.php
RewriteRule .(/)?$ C:\\Apache\\htdocs\\teste2\\index.php
RewriteRule .(/)?$ C:/Apache/htdocs/teste2/index.php


#18 Membro offline   weslleysolo Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 361
  • Cadastrado: 16-março 06
  • Sexo:Masculino
  • Localização:Serra/ES

Postou 27 novembro 2006 - 15:09

rapaz ta dificil, agora apareceu outro erro:

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Erro 500

-----------------------------------------------------

JÁ RESOLVIR--VALEU!!!!

#19 Membro offline   weslleysolo Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 361
  • Cadastrado: 16-março 06
  • Sexo:Masculino
  • Localização:Serra/ES

Postou 02 dezembro 2006 - 10:59

Quem disse que naum se pode implementar URLs amigavei em ASP???

http://angeruzzi.com...avel-em-aspnet/

#20 Membro offline   carlaohsv Ícone

  • Carlos Henrique
  • Ícone
  • Grupo: Membros
  • Posts: 669
  • Cadastrado: 25-junho 06
  • Localização:Itabirito - MG

Postou 02 dezembro 2006 - 12:15

Perfect Lion, só uma duvida!
se eu quizer passar o valor de alguma variável pela url eu preciso modifcar alguma coisa nesse arquivo .htaccess que você postou ai?

edit
-----
agora eu intendi!!!!

#21 Membro offline   carlaohsv Ícone

  • Carlos Henrique
  • Ícone
  • Grupo: Membros
  • Posts: 669
  • Cadastrado: 25-junho 06
  • Localização:Itabirito - MG

Postou 02 dezembro 2006 - 12:36

galera no meu servidor local os arquivos .htaccess não funcionam, será porque?
eu tenho que configurar alguma coisa no apache?

#22 Membro offline   Void : Ícone

  • Mercenário's
  • Ícone
  • Grupo: Membros
  • Posts: 1335
  • Cadastrado: 26-abril 05
  • Localização:São Paulo/SP

Postou 02 dezembro 2006 - 21:49

tem que setar o .htacess para o caminho correto, e tem que criar um arquivo <SEM_NOME>.htaccess e salva-lo no document root

#23 Membro offline   weslleysolo Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 361
  • Cadastrado: 16-março 06
  • Sexo:Masculino
  • Localização:Serra/ES

Postou 04 dezembro 2006 - 08:01

#LoadModule rewrite_module modules/mod_rewrite.so
#AddModule mod_rewrite.c

(httpd.conf) tire o ' # ' destas linhas salve e reinicie o apache.

#24 Membro offline   Perfect Lion Ícone

  • TOMA A PATADA DO LION ´0:
  • Ícone
  • Grupo: Membros
  • Posts: 857
  • Cadastrado: 29-outubro 04
  • Localização:São Bernardo do Campo/SP

Postou 04 dezembro 2006 - 12:05

Isso ai filhote.... eu havia dito isso ttm =)

#25 Membro offline   DetonationS Ícone

  • Grupo: Aguardando Liberação
  • Posts: 37
  • Cadastrado: 17-novembro 06
  • Localização:Joinville - SC

Postou 05 dezembro 2006 - 19:19

Eu me enrolei um pouco ali no começo,
mas dei umas 3 lidas novamente e consegui fazer... :mellow:

Parabéns pelo tutorial! :joia:

#26 Membro offline   marcos... Ícone

  • -p
  • Ícone
  • Grupo: Membros
  • Posts: 29
  • Cadastrado: 08-março 06

Postou 08 dezembro 2006 - 14:06

consegui fazer parcialmente :P alterei algumas coisas no código que sem as alterações não funcionam...

.htaccess
# << URLs Amigaveis
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .(/)?$ /index.php
</IfModule>
# >> URLs Amigaveis


index.php
<?php
$gets = explode("/",str_replace(strrchr($_SERVER["REQUEST_URI"], "?"), "", $_SERVER["REQUEST_URI"]));
array_shift($gets);
if(file_exists("includes/" . $gets[0] . ".php")){
require ("includes/" . $gets[0] . ".php");
}else{
echo "Teste";
}
?>


ai criei uma página pra listar alguns dados de um db.. tudo ok

	<?
														include"config.php";
$sql = mysql_query("SELECT * from jogos");
$total = mysql_num_rows($sql);
if ($total>0) {
while ($file = mysql_fetch_array($sql)) {
extract($file);

echo "														
														<a href='http://www.site.org/artigo/nome/$nome/jogo_id/$jogo_id'>$nome</a><br>
";
}} else {
echo "Não existem jogos cadastrados";
}
?>


porém sempre aparece que não existe nada cadastrado no db

<?php
include"config.php";
$jogo_id=$_GET['jogo_id'];
$sql = mysql_query("SELECT * FROM jogos WHERE jogo_id='$jogo_id'");
$total = mysql_num_rows($sql);
if ($total>0) { 

$dados = mysql_fetch_array($sql); 
extract($dados);

echo "
$nome - $id - $swf<br>
"; 
} else { 
echo "Nenhum produto foi encontrado"; 
} 
?>


o que estou fazendo de errado?

#27 Membro offline   Perfect Lion Ícone

  • TOMA A PATADA DO LION ´0:
  • Ícone
  • Grupo: Membros
  • Posts: 857
  • Cadastrado: 29-outubro 04
  • Localização:São Bernardo do Campo/SP

Postou 08 dezembro 2006 - 14:30

O que você fez de errado foi não entender direito como o negocio funciona... eu disse que funciona normal o GET e POST ceto? se você está usando GET então você tem que colocar http://www.site.org/...me...d=$jogo_id

para que esse esquema ai funfe da maneira que você quer você não tem que usar o $_GET e sim a variavel $gets

ai no retorno faça isso:

<?php
include"config.php";
$jogo_id=$gets[4]
$sql = mysql_query("SELECT * FROM jogos WHERE jogo_id='$jogo_id'");
$total = mysql_num_rows($sql);
if ($total>0) {

$dados = mysql_fetch_array($sql);
extract($dados);

echo "
$nome - $id - $swf<br>
";
} else {
echo "Nenhum produto foi encontrado";
}
?>



=)

#28 Membro offline   marcos... Ícone

  • -p
  • Ícone
  • Grupo: Membros
  • Posts: 29
  • Cadastrado: 08-março 06

Postou 08 dezembro 2006 - 14:45

ahá... perfeito =) vlw pela ajuda ;)

#29 Membro offline   danimac13 Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 97
  • Cadastrado: 21-setembro 05

Postou 15 dezembro 2006 - 10:36

E se no caso o meu site estiver dentro da pasta portal. Teria como ele interpretar qualquer conteúdo dentro dele como se fosse o diretório raiz?

#30 Membro offline   Sergio R Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 18
  • Cadastrado: 10-dezembro 06

Ícone  Postou 17 dezembro 2006 - 11:45

Estou com um problema no meu site que é o seguinte:
(desculpe, mas sou novo no assunto e gosto de perguntar)

Tem uma pasta com arquivos para download, só para usuarios. Mas se alguém digita a url completa, tipo www.meusite.com.br/downloads/news/arquivo.doc consegue baixar sem precisar autenticar o usuario.
Me disseram que o arquivo .htacces é a soluçäo. Entendi como usa-lo para url amigáveis, mas como usa-lo para proteger o diretório?

O que preciso fazer:

-proteger arquivos do diretório contra pessoas que väo direto ao arquivo.
-se algué digitar www.meusite.com.br/dowmloads/news ser enviado direto para a página index.php

Alguém pode me ajudar?

#31 Membro offline   carlaohsv Ícone

  • Carlos Henrique
  • Ícone
  • Grupo: Membros
  • Posts: 669
  • Cadastrado: 25-junho 06
  • Localização:Itabirito - MG

Postou 20 dezembro 2006 - 14:05

Uma possivel solução para não ter que ficar colocando o endereço completo da páginas, que eu não testei mais eu acho que da certo.
a possivel solução é colocar um <base href="http://www.seusite.com.br/" /> entre as tags <head></head> da página.
e como eu cheguei a essa conclusão?
vocês podem perceber que o site do iMasters usa URLs amigáveis,
então por curiosidade resolvi dá uma olhada no html da página, e vi que não há nenhum link completo na página, então lembrei que essa tag <base> pode ser usada para isso, ai eu constatei que no html do site iMasters tinha essa tag.

é isso ai, caso eu esteja errado, por favor me corrijam. :natal_wink:
lembrando que eu não testei, OK?

#32 Membro offline   Perfect Lion Ícone

  • TOMA A PATADA DO LION ´0:
  • Ícone
  • Grupo: Membros
  • Posts: 857
  • Cadastrado: 29-outubro 04
  • Localização:São Bernardo do Campo/SP

Postou 21 dezembro 2006 - 21:17

carlaohsv -> Certta resposta =)
Só falatava isso ai eu havia esquecido isso agora com essa sua dica o sistema de URLs amigaveis fico completo ;)

#33 Membro offline   carlaohsv Ícone

  • Carlos Henrique
  • Ícone
  • Grupo: Membros
  • Posts: 669
  • Cadastrado: 25-junho 06
  • Localização:Itabirito - MG

Postou 21 dezembro 2006 - 21:39

Fico muito feliz por ter ajudado. :natal_biggrin:

#34 Membro offline   Zé Roberto Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 24
  • Cadastrado: 23-julho 06
  • Localização:Rio de Janeiro - RJ

Postou 28 janeiro 2007 - 22:42

o apache não tá reconhecendo o .htaccess.....

se eu abro assim: http://localhost/site/artigos/asdasd

com o htaccess em artigos da erro 404....

se eu escrevo o htaccess cheio de erros também dá o 404 ao invez do internal server error :S

LoadModule rewrite_module modules/mod_rewrite.so não tá comentado. o que eu faço?

#35 Membro offline   Zé Roberto Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 24
  • Cadastrado: 23-julho 06
  • Localização:Rio de Janeiro - RJ

Postou 29 janeiro 2007 - 22:03

Ver postZé Roberto, em 28/01/2007 - 23:42, disse:

o apache não tá reconhecendo o .htaccess.....

se eu abro assim: http://localhost/site/artigos/asdasd

com o htaccess em artigos da erro 404....

se eu escrevo o htaccess cheio de erros também dá o 404 ao invez do internal server error :S

LoadModule rewrite_module modules/mod_rewrite.so não tá comentado. o que eu faço?


consegui.

o AllowOverride estava none na pasta htdocs

mudei pra All e pego

<Directory "C:/Apache/htdocs">
	# coments....
	AllowOverride All
</Directory>


#36 Membro offline   carlaohsv Ícone

  • Carlos Henrique
  • Ícone
  • Grupo: Membros
  • Posts: 669
  • Cadastrado: 25-junho 06
  • Localização:Itabirito - MG

Postou 03 fevereiro 2007 - 16:28

O que esse AllowOverride faz?

Ver postZé Roberto, em 29/01/2007 - 23:03, disse:

Ver postZé Roberto, em 28/01/2007 - 23:42, disse:

o apache não tá reconhecendo o .htaccess.....

se eu abro assim: http://localhost/site/artigos/asdasd

com o htaccess em artigos da erro 404....

se eu escrevo o htaccess cheio de erros também dá o 404 ao invez do internal server error :S

LoadModule rewrite_module modules/mod_rewrite.so não tá comentado. o que eu faço?


consegui.

o AllowOverride estava none na pasta htdocs

mudei pra All e pego

<Directory "C:/Apache/htdocs">
	# coments....
	AllowOverride All
</Directory>


#37 Membro offline   Froskie Ícone

  • Flash + ? = :-)
  • Ícone
  • Grupo: Membros
  • Posts: 1523
  • Cadastrado: 18-junho 03
  • Localização:Campo Grande - MS

Postou 16 março 2007 - 15:49

Salve galera! Este é meu .htaccess:

RewriteEngine On

RewriteRule ^categorias/([^/\.]+)/?$ site.php?i=1,$1

RewriteRule ^subcategorias/([^/\.]+)/?$ site.php?i=2,$1

RewriteRule ^produtos/([^/\.]+)/?$ site.php?i=4,$1

RewriteRule ^carrinho/controle/?$ site.php?i=6
RewriteRule ^carrinho/lista/?$ site.php?i=7
RewriteRule ^carrinho/lista/([^/\.]+)/?$ site.php?i=7,$1

RewriteRule ^cliente/login/?$ site.php?i=8 [QSA,L]
RewriteRule ^cliente/login/([^/\.]+)/?$ site.php?i=8,$1

RewriteRule ^institucional/([^/\.]+)/?$ site.php?i=3,$1


Só tem um "pobrema" aí: quando é digitado www.site.com.br/produto, ele acessa o arquivo produto.php, dentro da raiz. Como desabilito isso?

#38 Membro offline   supertelnet Ícone

  • ..:Tellys:.. Para a Infanteria os melhores sao apenas bons
  • Ícone
  • Grupo: iMProjetos PHP
  • Posts: 753
  • Cadastrado: 01-agosto 06
  • Localização:Tres Pontas - Minas Gerais

Postou 09 abril 2007 - 11:18

Pessoal, como vao todos?

eu to com um prob , meu .htaccess funciona, mas parcialmente, vejma so

.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ ?local=$1&acao=$2&id=$3
</IfModule>


como se pode ver ele trata ate 3 variaveis.... ate ai tdo bem.... , mas:

1 - se a url vai com as tres variaveis, ele funciona. ex.: http://www.sinprocred.com/clientes/listar/1

2 - se a url vai com menos variaves, uma ou duas, no caso. ex.: http://www.sinprocred.com/clientes ele retorna pagina nao localizada.

questao: o que eu devo acrescentar nesse codigo pra que funcione tanto com 3, 2 ou uma variavel?

#39 Membro offline   Raphael Vilean Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 8
  • Cadastrado: 04-maio 07
  • Localização:Pernambuco - Recife

Postou 04 maio 2007 - 12:22

Query Strings ? Certo ?

Òtimo artigo, gostei bastante, isso é meio cansativo, aqui fica bem legal de aprender.


Até Mais...

#40 Membro offline   Sphinter Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 177
  • Cadastrado: 07-outubro 06

Postou 01 junho 2007 - 15:53

Boa TArde a Todos ;)

Uma dúvida,
solicitei ao meu servidor essa alteração e eles ficaram de estudar se nao iria causar nenhum impacto no servidor e em outro sites que estão hospedado.

gostaria de saber se nao tem como eu fazer isso se alterar essa linha na configuração.

#LoadModule rewrite_module modules/mod_rewrite.so


No aguardo...
Vlw ;)

#41 Membro offline   Perfect Lion Ícone

  • TOMA A PATADA DO LION ´0:
  • Ícone
  • Grupo: Membros
  • Posts: 857
  • Cadastrado: 29-outubro 04
  • Localização:São Bernardo do Campo/SP

Postou 11 junho 2007 - 10:03

Kra isso não implica em nada no servidor. ele só dá mais funções para você poder trabalhar com reescrita de url.
E no meu ver acho que num rola se fazer algo sem esse modulo ae habilitado =/

#42 Membro offline   Sphinter Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 177
  • Cadastrado: 07-outubro 06

Postou 12 junho 2007 - 11:46

Perfect Lion

Obrigado amigo pela resposta, eu realmente estou em uma briga com eles por causa disto... ja me ligaram e falaram "Daniel sua alteração ja foi feita"
Eu pensei comigo.. ÓTIMO!!! Porém ao testar... ele não está funcionando... abrindo uma pasta qualquer que não existe ele da o erro 404.. e nao redireciona para o index como está configurado no .htacess

Tem alguma linha de comando que eu realmente tenha como ver se isso foi ativado?

Tentei pelo phpinfo porém desativaram ele... não tenho acesso nem a isso...
To com uma raiva deste servidor...

Espero ajuda dos amigos...

Obrigado.

#43 Membro offline   Perfect Lion Ícone

  • TOMA A PATADA DO LION ´0:
  • Ícone
  • Grupo: Membros
  • Posts: 857
  • Cadastrado: 29-outubro 04
  • Localização:São Bernardo do Campo/SP

Postou 14 junho 2007 - 10:00

Kra aranja outro server.... se eles bloquearam o phpinfo então deve haver alguma sacanagem nesse servidor... =/
Se quiser eu tenho servidor de hospedagem e roda PHP5 e php4

Quanto a linha de comando nem precisa se você fizer isso:

ahdjadahd

Lá ele vai dar erro nem vai carregar o index se num der erro é pq está desativado

#44 Membro offline   Sadjow Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 73
  • Cadastrado: 11-setembro 06
  • Localização:Natal - RN

Postou 20 junho 2007 - 12:22

como faz isso para arquivos html ?! ao invés de pastas...

Noticias/noticia-0-29-2.html

ficava
index.php?page=Noticias&action=noticia&categoria=0&idnoticia=29&sessao=2

#45 Membro offline   blurkness Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 1
  • Cadastrado: 11-julho 07
  • Localização:Brasil - SP

Postou 11 julho 2007 - 15:37

olá pessoal...

estou com problemas no meu htaccess... nao sei se esse é o post correto para solucionarem minha duvida :( mas ai vai

php_flag display_errors off
php_flag register_globals on
RewriteEngine On
Options +Followsymlinks
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.* - [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ /floguito.php?id=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/foto/([^/]+)/?$ /floguito.php?id=$1&foto=$2 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/todas/?$ /todas.php?id=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/todas/pagina/([^/]+)/?$ /todas.php?id=$1&pagina=$2 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/geral/?$ /geral.php?id=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/perfil/?$ /perfil.php?id=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/favoritos/?$ /favoritos.php?id=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/favoritos/pagina/([^/]+)/?$ /favoritos.php?id=$1&pagina=$2 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/soufavorito/?$ /favoritos_adicionados.php?id=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/soufavorito/pagina/([^/]+)/?$ /favoritos_adicionados.php?id=$1&pagina=$2 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/musica/?$ /minhamusica.php?id=$1 [L]


infelizmente esta causando "internal error" no meu host...

meu host é na locaweb...


obrigado desde já

#46 Membro offline   .Gustavo. Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 175
  • Cadastrado: 13-janeiro 07

Postou 15 agosto 2007 - 10:24

Estava olhando a documentação do apache, e vi que as configurações que ficariam no .htaccess podem ser colocadas direto no httpd.conf.

Isso otimiza a performance do servidor, porque se as configurações ficarem no .htaccess o apache vai ler aquele arquivo toda vez que alguem acessar algum arquivo naquela pasta, se estiver no httpd.conf o apache vai ler essas configurações somente quando ele for startado.

É só fazer assim:

Em primeiro lugar é só descomentar a linha abaixo, como o Erick já disse
LoadModule rewrite_module modules/mod_rewrite.so

Depois em vez de criar o arquivo .htaccess, você abre o httpd.conf e coloca as configurações abaixo
<Directory "C:/apache/htdocs">
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .(/)?$ /html/seuuser/www/index.php 
</Directory>

a única coisa que eu fiz aqui foi pegar todas as configurações que iriam pro .htaccess e colocar entre as tags <Directory> no httpd.conf, o path que está entre aspas no início da tag é o diretório que vai ser configurado, pode se qualquer diretório do apache.

Disseram em um post aí em cima que precisa colocar o 'AllowOverride' em 'All' no httpd.conf, usando a configuração deste jeito não precisa mais, pode deixar em 'None' que funciona tranquilo.

Agora é só restartar o apache e pronto, tudo tem que funcionar igual estava funcionando usando o .htaccess

Acho que isso é tudo,
Até mais :thumbsup:

#47 Membro offline   Perfect Lion Ícone

  • TOMA A PATADA DO LION ´0:
  • Ícone
  • Grupo: Membros
  • Posts: 857
  • Cadastrado: 29-outubro 04
  • Localização:São Bernardo do Campo/SP

Postou 24 outubro 2007 - 09:13

A unica desvantagem em criar direto no httpd é que em servidores de hospedagem eles não vão configurar o apache para você. pois você não tem acesso a ele. ;)

#48 Membro offline   NucleoZERO Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 71
  • Cadastrado: 11-abril 05

Postou 11 março 2008 - 00:11

Olá,


Alguém poderia postar o arquivo .htaccess do Floguito ou a solução para os problemas de permissões?


Desde já agradeço!

#49 Membro offline   JulioReis Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 10
  • Cadastrado: 26-março 08

Postou 26 março 2008 - 10:37

Estou usando assim
<?

$var = "estrutura/principal.php";
$pg = "estrutura/$_GET[pg].php";
if(empty($_SERVER["QUERY_STRING"])) {
include($var);
} else {
include("$pg");
}
?>
sera que tem como colocar?

Obrigado

#50 Membro offline   cweb Ícone

  • Ícone
  • Grupo: Membros
  • Posts: 13
  • Cadastrado: 04-abril 06

Postou 29 abril 2008 - 15:36

comigo funcionou 5 estrelas
sei que é já bastante antigo, mas vou fazer uma pergunta, como posso ignorar o explode de um config?

imagina:

tenho um config.php
$config[url_root] = "http:domain.com/pasta";

então queria iniciar o explode apartir daqui e ignorar o dominío($config[url_root] ), porque pode estar em uma pasta o site
seguindo o exemplo deste tópico que é muito bom.
podem dar uma ajuda!
valeu

http:domain.com/pasta iniciar o $gets[0] apartir daqui

RESOLVIDO

$conta = "SUBPASTA/";
$resultado = strlen($conta);
$URI = substr($_SERVER["REQUEST_URI"], $resultado);
///////////////////////////////////
$gets = explode("/",str_replace(strrchr($_SERVER["REQUEST_URI"], "?"), "", $URI));


echo "<pre>";
echo print_r($gets);
echo "</pre>";


/RESOLVIDO

  • (2 Páginas)
  • +
  • 1
  • 2
  • Novo tópico
  • Responder

2 usuário(s) está(ão) lendo este tópico
0 membro(s), 2 visitante(s) e 0 membros anônimo(s)