Good 4 Denunciar post Postado Maio 25, 2010 como eu faria um sistema de urls personalizadas.. ex.: http://www.site.com.br/meu_nome http://www.site.com.br/testando eu sei que usa alguma coisa com cgi, algo assim.. só que não sei fazer.. tipo.. algumas pessoas terão o direito de criar uma url personalizada.. pq as outras são assim: www.site.com.br/perfil.php?id=XXX ae eu penso em fazer assim: criar uma página pra eles digitarem a url desejada com limitação a alguns caracteres.. depois, eu faço uma verificação pra ver se existe uma url personalizada com aquele nome escolhido, se der true exibe os dados e se der falso dá uma msg de erro.. alguém me ajuda a fzer? vlw Compartilhar este post Link para o post Compartilhar em outros sites
F0X 1 Denunciar post Postado Maio 25, 2010 Veja esse link aqui http://forum.imasters.com.br/index.php?/topic/395171-paginacao-com-urls-amigaveis/page__hl__%20mod%20rewrite%20__fromsearch__1 Compartilhar este post Link para o post Compartilhar em outros sites
Good 4 Denunciar post Postado Junho 1, 2010 Olha ae: Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, as@h.com and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log. Apache/2.2.4 (Win32) PHP/5.2.3 Server at localhost Port 80 esqueci de como está o .htaccess: RewriteEngine on RewriteRule ^([0-9]+)\/?$ perfil.php?id=$1 url de como tá sendo digitada: http://localhost/site/novo_site/1 o 1 é a ID do usuário.. depois eu verifico no php se é um número ou palavras (is_numeric).. ajuda ae gnete.. já faz 6 dias e só uma pessoa respondeu!!!!!!!!!!!!!!!! esse link q ele passou dá o mesmo erro!! e eu queria assim: http://localhost/site/novo_site/MeuNome e não assim: http://localhost/site/novo_site/nome/MeuNome Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Junho 1, 2010 ^\/site\/novo_site\/([0-9]*)$ perfil.php?id=$1 Nota: URL's contendo o caractere underscore _ são consideradas inválidas por muitos sistemas. Compartilhar este post Link para o post Compartilhar em outros sites
Good 4 Denunciar post Postado Junho 3, 2010 HTTP Error 404 - File or directory not found. #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 RewriteRule ^\/sitenovo\/([0-9]*)$ perfil.php?id=$1 Onde eu coloco esse .htaccess? Coloquei na pasta anterior a sitenovo, coloquei dentro dela.. e nada!! no localhost aparece esse erro: Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, as@h.com and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log. Apache/2.2.4 (Win32) PHP/5.2.3 Server at localhost Port 80 e no host aparece o erro 404!! Q porqueira, já tá dando raiva isso.. pra q inventaram isso.. ninguém sabe resolver isso? Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Junho 3, 2010 RewriteRule ^\/sitenovo\/([0-9]*)$ /perfil.php?id=$1 Compartilhar este post Link para o post Compartilhar em outros sites
Good 4 Denunciar post Postado Junho 9, 2010 Erro 404! Cara, como fica o script completo? Vcs testaram pra ver se dá certo? Aonde eu colco esse script? dentro da pasta "sitenovo",na pasta antes da "sitenovo"? Ou 2x antes da pasta "sitenovo?" vlw Eu percebi que eu acho que não tem erro neste código.. pois tentei fazer isso: RewriteEngine on RewriteRule ^sitenovo/([^/]+)/id(|/)$ /perfil.php?id=$1 RewriteRule ^entre(|/)$ /entre.php Deu o mesmo erro.. tem que habilitar alguma coisa? Acho que o código não está errado.. pq eu coloquei esse: #RewriteEngine on #RewriteRule ^sitenovo/([^/]+)/id(|/)$ /perfil.php?id=$1 #RewriteRule ^entre(|/)$ /entre.php e não deu certo..deu o erro 404.. talvez tenha que habilitar alguma coisa não? Acho que o código não está errado.. pq eu coloquei esse: #RewriteEngine on #RewriteRule ^sitenovo/([^/]+)/id(|/)$ /perfil.php?id=$1 #RewriteRule ^entre(|/)$ /entre.php e não deu certo..deu o erro 404.. talvez tenha que habilitar alguma coisa não? Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Junho 9, 2010 #RewriteEngine on #RewriteRule ^sitenovo/([^/]+)/id(|/)$ /perfil.php?id=$1 #RewriteRule ^entre(|/)$ /entre.php Aqui você comentou todas as linhas, é como se não houvessem regras, ou não houvesse o arquivo .htaccess ali. Acontece então uma requisição ao caminho que foi digitado (no caso www.site.com.br/sitenovo/id). Uma vez que este endereço não existe, um erro 404 é disparado. Faça dois testes: 1º Coloque um arquivo .htaccess na raiz do domínio contendo apenas a expressão: "teste" Isto deve gerar um erro de servidor. Caso o mesmo não aconteça, você não tem suporte a AllowOverride habilitado. Caso funcione (dê o erro), vamos começar a melhorar isto. Defina a seguinte linha: ErrorDocument 404 /erros/erro.php?level=404 Crie o diretório erros, crie um novo arquivo chamado erro.php que levará o seguinte conteúdo: <? if(!empty($_GET['level'])) echo "Erro {$_GET['level']} ao acessar {$_SERVER['HTTP_REFERER']}"; ?> Digite 'www.seusite.com.br/diretorio/paginanaoexiste.html' e veja se a mensagem: Erro 404 ao acessar www.seusite.com.br/diretorio/paginanaoexiste.html aparece. Se tudo estiver OK, defina novamente as regras de redirecionamento como foi sugerido neste mesmo tópico e poste as mensagens de resposta do servidor. Compartilhar este post Link para o post Compartilhar em outros sites
Good 4 Denunciar post Postado Junho 11, 2010 beleza.. tá desabilitado mesmo.. eu contatei os cara, e eles disseram q tem q habilitar esse AllowOverride pelo .htaccess mesmo.. as linhas tavam com # pq no meu pc tava desabilitado, mas já habilitei.. ae eu habilito como? AllowOverride AuthConfig ou AllowOverride none Como esse AllowOverride no começo de todo o código? Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Junho 11, 2010 crie um arquivo .htaccess na raiz do domínio com o seguinte conteúdo <Directory /> AllowOverride All </Directory> Se não funcionar - o que eu creio que certamente vai acontecer - verifique instruções passo-a-passo com o suporte do seu host. Compartilhar este post Link para o post Compartilhar em outros sites
Good 4 Denunciar post Postado Junho 20, 2010 É.. num deu certo não.. já contatei eles.. vlw Já contatei eles, e eles deram um jeito.. estou usando assim: RewriteEngine on RewriteRule ^([0-9]*)(|/)$ perfil.php?id=$1 só que não quero assim, quero fazer igual ao twitter: twitter.com/usuario O que eu tenho de fazer? Eu tentei assim, só que deu erro.. dizia que dava erro de redirecionamento..: RewriteEngine on #RewriteRule ^([0-9]*)(|/)$ perfil.php?id=$1 RewriteRule ^([^/]+)/id(|/)$ /perfil.php?usuario=$1 Como eu tenho que fazer pra dar certo? Tenho que colocar todas as URL do site pra serem amigáveis? Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Junho 21, 2010 RewriteRule (.*) perfil.php?usuario=$1 Qualquer coisa que vier depois da barra será passado como parâmetro para perfil.php Compartilhar este post Link para o post Compartilhar em outros sites
Good 4 Denunciar post Postado Junho 22, 2010 Então, eu terei que fazer url amigável com todas as url pra dar certo? pq eu tentei agora, ae dava um erro.. eu tentava entrar em outra página e dava erro tbm.. tenho q colocar todas as url assim pra dar certo? Pra ficar assim: http://www.site.com.br/usuario e poder acessar por ex essa página: http://www.site.com.br/conteudo.php'>http://www.site.com.br/conteudo.php e colocar pra ficar assim no htaccess: http://www.site.com.br/conteudo Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Junho 22, 2010 Acabei de testar aqui assim: teste.php <?php print_r($_REQUEST); .htaccess RewriteEngine on RewriteRule (.*)$ teste.php?param=$1 endereco.com/testedetudoaqui O valor em negrito será acessível pelo arquivo teste.php através da variável $_GET['param'] Para criar páginas "protegidas", você pode fazer um array listando-as: <?php $system = array( 'signup' => 'cria_usuario.php', 'login' => 'entra_usuario.php', 'logout' => 'sai_usuario.php', 'register' => 'conclui_registro.php', 'die' => 'exclui_usuario.php' ); if(in_array($_GET['param'], $system)) header("Location: {$system[$_GET['param']]}"); else include "buscamembro.php?membro={$_GET['param']}"; Compartilhar este post Link para o post Compartilhar em outros sites
Good 4 Denunciar post Postado Junho 24, 2010 sim.. mas eu to perguntando se eu tenho de colocar todas as páginas pra serem url amigáveis pra esse negócio funcionar.. ou seja: RewriteEngine on RewriteRule (.*) perfil.php?usuario=$1 RewriteRule login(|/) login.php RewriteRule cadastro(|/) cadastro.php pra acessar o perfil: http://www.site.com.br/usuario e pra acessar por exemplo a página de login: http://www.site.com.br/login Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Junho 25, 2010 Para criar páginas "protegidas", você pode fazer um array listando-as: Compartilhar este post Link para o post Compartilhar em outros sites
Good 4 Denunciar post Postado Junho 27, 2010 beleza.. você num entendeu não.. mas beleza.. vou colocar tdo no htaccess.. vlw Nam cara.. voltando ao tópico!!! Olha, eu não quero proteger nada.. Tipo.. o pessoal acessa o twitter dos outros assim: http://www.twitter.com/usuario e para se cadastrar por exemplo: http://www.twitter.com/signup Como é que eu faço isso? Tipo, eu fiz do jeito que você disse aí.. include agora acessa arquivos informando variáveis? Eu tentei acessar as páginas aqui e não verifica se estava dentro do array, já ia direto pro include.. sendo que estava dentro do array na variável system! no .htaccess num dá pra fazer isso não? Pq eu tbm coloco assim: RewriteEngine on RewriteRule ^membros(|/)$ membros.php RewriteRule ^entre(|/)$ entre.php RewriteRule (.*)$ perfil.php?usuario=$1 Num dá pra verificar isso no .htacess ñ? Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Junho 28, 2010 Perfeitamente. Apenas certifique-se de definir a flag last ao fim da regra, para que ela não seja passada adiante: RewriteEngine on RewriteRule ^membros/?$ membros.php [L] RewriteRule ^entrar/?$ entrar.php [L] RewriteRule (.*)$ perfil.php?usuario=$1 Compartilhar este post Link para o post Compartilhar em outros sites
Good 4 Denunciar post Postado Julho 3, 2010 Está dando redirecionamento incorreto.. cara, tem como você testar pra ver se dá certo isso? E isso tá sendo por causa do RewriteRule (.*)$ perfil.php?usuario=$1 quando eu tiro, pára de dar esse redirecionamento incorreto.. Compartilhar este post Link para o post Compartilhar em outros sites
Evandro Oliveira 331 Denunciar post Postado Julho 5, 2010 Good, você também tem que testar algumas variações. Nem sempre vindo ao fórum vão te dar a solução completa só copiar e colar e vai funcionar belezinha. Notou o que a ER proposta faz(faria se funcionasse)? RewriteRule (.*)$ perfil.php?usuario=$1 Casa tudo, quantas vezes existir e envia como parâmetro [usuario] para perfil.php. Logo: site.com/teste redireciona para site.com/perfil.php?usuario=teste O problema é que o endereço acima também casa com a ER [tudo, quantas vezes existir] redireciona para site.com/perfil.php?usuario=perfil.php?usuario=teste e assim: site.com/perfil.php?usuario=perfil.php?usuario=perfil.php?usuario=teste site.com/perfil.php?usuario=perfil.php?usuario=perfil.php?usuario=perfil.php?usuario=teste ... Aí eu venho refazer uma citação já existente: Para criar páginas "protegidas", você pode fazer um array listando-as: Como em .htaccess não temos a possibilidade de utilizar (?!palavra-negada), temos que negar caractere por caractere de perfil.php?id= a fim de formar uma proteção sólida em htaccess (o que como já foi dito deve ser feito em runtime com php e array. Isso nos obriga a colocar um identificador antes da expressão coringa. Para nosso exemplo, utilizaremos a palavra 'perfil' RewriteEngine on RewriteRule ^membros/?$ membros.php [L] RewriteRule ^entrar/?$ login.php [L] RewriteRule ^perfil/(.*)$ perfil.php?usuario=$1 Compartilhar este post Link para o post Compartilhar em outros sites