baldit 0 Denunciar post Postado Maio 7, 2012 Boa tarde! Tenho um htaccess sendo: RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ $1.php Pois bem, ele faz tirar a extensão PHP dos arquivos Exemplo: www.meusite.com.br/planos.php ficará: www.meusite.com.br/planos Eu gostaria de saber se tem como editar esse arquivo pra ficar assim: www.meusite.com.br/hospedagem/planos sem precisar criar uma pasta chamada "hospedagem" .. Compartilhar este post Link para o post Compartilhar em outros sites
ell_cpu 0 Denunciar post Postado Maio 8, 2012 Voce faz isso quando for recuperar os dados. Compartilhar este post Link para o post Compartilhar em outros sites
Tacno 2 Denunciar post Postado Maio 9, 2012 Boa tarde! Tenho um htaccess sendo: RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ $1.php Pois bem, ele faz tirar a extensão PHP dos arquivos Exemplo: www.meusite.com.br/planos.php ficará: www.meusite.com.br/planos Eu gostaria de saber se tem como editar esse arquivo pra ficar assim: www.meusite.com.br/hospedagem/planos sem precisar criar uma pasta chamada "hospedagem" .. O que você precisa fazer é pegar os valores da url $params = explode("/", str_replace(strrchr($_SERVER["REQUEST_URI"], "?"), "", $_SERVER["REQUEST_URI"])); para cada $params será uma parte do link ex: www.meusite.com/busca/resultado-da-minha-busca $params[0] = busca $params[1] = resultado-da-minha-busca pega o valor nesse caso vamos dizer que existisse a página busca.php então o código ficaria assim if(file_exists($params[0].".php")) { include($params[0].".php"); } else { include("404.php"); // Página de erro caso tenha criado } espero ter ajudado!! =DD Compartilhar este post Link para o post Compartilhar em outros sites
Marcos Barbosa 1 Denunciar post Postado Maio 9, 2012 O que você precisa fazer é pegar os valores da url $params = explode("/", str_replace(strrchr($_SERVER["REQUEST_URI"], "?"), "", $_SERVER["REQUEST_URI"])); para cada $params será uma parte do link ex: www.meusite.com/busca/resultado-da-minha-busca $params[0] = busca $params[1] = resultado-da-minha-busca pega o valor nesse caso vamos dizer que existisse a página busca.php então o código ficaria assim if(file_exists($params[0].".php")) { include($params[0].".php"); } else { include("404.php"); // Página de erro caso tenha criado } espero ter ajudado!! =DD Equipe Beta Tacno eu quero aprender a fazer dessa forma, mas não entendi como devo fazer, você poderia dar uma explicação mais detalhada... Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
ell_cpu 0 Denunciar post Postado Maio 9, 2012 //Pega url $url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : getenv("REQUEST_URI"); /* O array $dados terá tantos componentes quanto forem digitados pelo usuario por ex.: se ele digitar: * http://.../eventos/eventos, o array $dados terá 3 componentes: $dados[0]/$dados[1]/$dados[2], * $dados = explode('/',$url); separa os dados, removendo a '/' do inicio da string */ $dados = explode('/',$url); /* Recupera os dados digitados pelo usario*/ $pasta = isset($dados[1]) ? $dados[1] : ""; $arquivo = isset($dados[2]) ? $dados[2] : ""; $dadoUm = isset($dados[3]) ? $dados[3] : ""; $dadoDois = isset($dados[4]) ? $dados[4] : ""; $dadoTres = isset($dados[5]) ? $dados[5] : ""; $dadoQuatro = isset($dados[6]) ? $dados[6] : ""; $dadoCinco = isset($dados[7]) ? $dados[7] : ""; $dadoSeis = isset($dados[8]) ? $dados[8] : ""; $dadoSete = isset($dados[9]) ? $dados[9] : ""; $dadoOito = isset($dados[10])? $dados[10]: ""; $dadoNove = isset($dados[11])? $dados[11]: ""; $dadoDez = isset($dados[12])? $dados[12]: ""; /*********************** INCLUI AS PÁGINAS DO SITE ********************/ //Verifica se o arquivo existe if(file_exists("$pasta/$arquivo.php") || file_exists("$pasta/$arquivo/$dadoUm.php")){ //Se o arquivo n for um diretorio inclui do contrario da erro include_once((is_file("$pasta/$arquivo.php")) ? "$pasta/$arquivo.php" : "$pasta/$arquivo/$dadoUm.php"); //Verifica se o arquivo existe }elseif($pasta == "" && $arquivo == ""){ //Se o arquivo n for um diretorio inclui do contrario da erro include_once((is_file("$pasta.php")) ? "$pasta.php" : "principal.php"); }else{ //Do contrario mosta a pagina de erro include_once("erros/erro_404.php"); } /****************** IMPRIME AS PAGINAS NA TELA ************************/ Exemplo: se o usuario digitar http://seusite.com.br/texto/meutexto/3/como-recuperar-os-dados fica assim: $pasta = texto; $arquivo = meutexto; $dadoUm = 3; $dadoDois = como-recuperar-os-dados; Compartilhar este post Link para o post Compartilhar em outros sites
Marcos Barbosa 1 Denunciar post Postado Maio 9, 2012 Ell Aves, vlw pela dica, vou fazer e posto o resultado... Compartilhar este post Link para o post Compartilhar em outros sites
Marcos Barbosa 1 Denunciar post Postado Maio 9, 2012 Ell Alves, veja bem, estou tentando fazer e ñ tá dando certo, vou mostrar minha estrutura http://www.izabellenossa.com.br/lojanossa/index.php No index eu uso uma uso faço as chamadas para as páginas: foreach ($_REQUEST as $___opt => $___val) { $$___opt = $___val; } if(empty($pg)) { include("nav/lista_categoria.php"); } elseif(substr($pg, 0, 4)=='http' or substr($pg, 0, 1)=="/" or substr($pg, 0, 1)==".") { echo '<br><font face=arial size=11px><br><b>A página não existe.</b><br>Por favor selecione uma página a partir do Menu Principal.</font>'; } else { include("nav/$pg.php"); } Eu uso link´s para chamar as páginas e nesse link eu coloco paramentros, tipo: <a href="index.php?pg=lista_categoria&id=<?php echo $list['id']">Bolsas</a> Então fiz dessa forma: $url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : getenv("REQUEST_URI"); $dados = explode('/',$url); $pasta = isset($dados[1]) ? $dados[1] : "teste"; $arquivo = isset($dados[2]) ? $dados[2] : "url"; $dadoUm = isset($dados[3]) ? $dados[3] : "amigavel"; Onde eu errei ? Compartilhar este post Link para o post Compartilhar em outros sites
MarVinOlivieraS 0 Denunciar post Postado Maio 9, 2012 //Pega url $url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : getenv("REQUEST_URI"); /* O array $dados terá tantos componentes quanto forem digitados pelo usuario por ex.: se ele digitar: * http://.../eventos/eventos, o array $dados terá 3 componentes: $dados[0]/$dados[1]/$dados[2], * $dados = explode('/',$url); separa os dados, removendo a '/' do inicio da string */ $dados = explode('/',$url); /* Recupera os dados digitados pelo usario*/ $pasta = isset($dados[1]) ? $dados[1] : ""; $arquivo = isset($dados[2]) ? $dados[2] : ""; $dadoUm = isset($dados[3]) ? $dados[3] : ""; $dadoDois = isset($dados[4]) ? $dados[4] : ""; $dadoTres = isset($dados[5]) ? $dados[5] : ""; $dadoQuatro = isset($dados[6]) ? $dados[6] : ""; $dadoCinco = isset($dados[7]) ? $dados[7] : ""; $dadoSeis = isset($dados[8]) ? $dados[8] : ""; $dadoSete = isset($dados[9]) ? $dados[9] : ""; $dadoOito = isset($dados[10])? $dados[10]: ""; $dadoNove = isset($dados[11])? $dados[11]: ""; $dadoDez = isset($dados[12])? $dados[12]: ""; /*********************** INCLUI AS PÁGINAS DO SITE ********************/ //Verifica se o arquivo existe if(file_exists("$pasta/$arquivo.php") || file_exists("$pasta/$arquivo/$dadoUm.php")){ //Se o arquivo n for um diretorio inclui do contrario da erro include_once((is_file("$pasta/$arquivo.php")) ? "$pasta/$arquivo.php" : "$pasta/$arquivo/$dadoUm.php"); //Verifica se o arquivo existe }elseif($pasta == "" && $arquivo == ""){ //Se o arquivo n for um diretorio inclui do contrario da erro include_once((is_file("$pasta.php")) ? "$pasta.php" : "principal.php"); }else{ //Do contrario mosta a pagina de erro include_once("erros/erro_404.php"); } /****************** IMPRIME AS PAGINAS NA TELA ************************/ Exemplo: se o usuario digitar http://seusite.com.br/texto/meutexto/3/como-recuperar-os-dados fica assim: $pasta = texto; $arquivo = meutexto; $dadoUm = 3; $dadoDois = como-recuperar-os-dados; me interessei por esse exemplo,no meu caso pretendo passar 3 parametros pela url por exemplo: noticia.php ( ou outro arquivo, por exemplo entretenimento.php) titulo da noticia id como ficaria essa função??? o meu .access continuaria assim: <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ([a-z0-9-]+)/([0-9]+)/?$ /news.php?titulo=$1&id=$2 [NC] </IfModule> Compartilhar este post Link para o post Compartilhar em outros sites
ell_cpu 0 Denunciar post Postado Maio 9, 2012 Arquivo .htacess # verifica se o modulo rewrite está habilitado se sim executa o bloco dentro # habilita o modulo Rewrite Options +FollowSymLinks Options All -Indexes RewriteEngine On #Indica qual é a pasta base de todo o conteudo RewriteBase / # Mostra o caminho completo do meu arquivo index.php que caso nenhum desses comandos assim seja valido vai para ele. RewriteRule !.(\.rss|\.gif|\.GIF|\.jpg|\.JPG|\.jpeg|\.JPEG|\.png|\.PNG|\.ico|\.css|\.js|\.swf|\.SWF|\.flv|\.xml|\.XML|\.htm|\.html|\.pdf|\.rar|\|.txt|\.7z|\.7Z|\.php)$ index.php #Redireciona o erro ErrorDocument 404 /erros/erro_404.php ErrorDocument 500 /erros/erro_500.php Dessa forma todas as paginas do seu site serão avertas no index.php. Compartilhar este post Link para o post Compartilhar em outros sites
MarVinOlivieraS 0 Denunciar post Postado Maio 9, 2012 Arquivo .htacess # verifica se o modulo rewrite está habilitado se sim executa o bloco dentro # habilita o modulo Rewrite Options +FollowSymLinks Options All -Indexes RewriteEngine On #Indica qual é a pasta base de todo o conteudo RewriteBase / # Mostra o caminho completo do meu arquivo index.php que caso nenhum desses comandos assim seja valido vai para ele. RewriteRule !.(\.rss|\.gif|\.GIF|\.jpg|\.JPG|\.jpeg|\.JPEG|\.png|\.PNG|\.ico|\.css|\.js|\.swf|\.SWF|\.flv|\.xml|\.XML|\.htm|\.html|\.pdf|\.rar|\|.txt|\.7z|\.7Z|\.php)$ index.php #Redireciona o erro ErrorDocument 404 /erros/erro_404.php ErrorDocument 500 /erros/erro_500.php Dessa forma todas as paginas do seu site serão avertas no index.php. mas a minha dúvida é exatamente como posso abrir os registros em arquivos diferentes, como por exemplo: http://localhost/noticias.php?id=1 abrir: http://localhost/noticias/titulo/1'>http://localhost/noticias/titulo/1 ou ainda melhor: http://localhost/noticias/titulo ou se o arquivo fosse entretenimento.php: http://localhost/entretenimento/titulo Nesse exemplo de .htaccess seria necessário usar também aquele código php q você havia citado anteriormente? Compartilhar este post Link para o post Compartilhar em outros sites
Marcos Barbosa 1 Denunciar post Postado Maio 10, 2012 mas a minha dúvida é exatamente como posso abrir os registros em arquivos diferentes, como por exemplo: http://localhost/noticias.php?id=1 abrir: http://localhost/noticias/titulo/1'>http://localhost/noticias/titulo/1 ou ainda melhor: http://localhost/noticias/titulo ou se o arquivo fosse entretenimento.php: http://localhost/entretenimento/titulo Nesse exemplo de .htaccess seria necessário usar também aquele código php q você havia citado anteriormente? Também tenho essa dúvida, e outra, dentro do index eu preciso fazer alguma referência ao .htaccess ? Compartilhar este post Link para o post Compartilhar em outros sites
ell_cpu 0 Denunciar post Postado Maio 10, 2012 mas a minha dúvida é exatamente como posso abrir os registros em arquivos diferentes Vamos lá, suponha que tenhamos os seguintes diretorios: seusite/ - noticias -- ver.php -- todas.php - entretenimento -- fimes.php -- fotos.php para ver todas as noticias, faz assim: http://seusite.com.br/noticias/todas para ver as noticias individualmente, faz assim: http://seusite.com.b...rimeira-noticia a mema coisa com o entretenimento: http://seusite.com.b...enimento/filmes http://seusite.com.b...tenimento/fotos Agora se você quiser abrir um arquivo da raiz é só digitar: http://seusite.com.br/nome-do-arquivo observe que qndo você digita http://seusite.com.br/ na verdade vai abrir http://seusite.com.br/principal (veja o codigo do meu segundo post) OBS: Se você tiver testando localmente deve observar que no lugar de "seusite.com.br" dever colocar: localhost/pasta-onde-estao-os-arquivos Nesse exemplo de .htaccess seria necessário usar também aquele código php q você havia citado anteriormente? Sim. Também tenho essa dúvida, e outra, dentro do index eu preciso fazer alguma referência ao .htaccess ? Não Compartilhar este post Link para o post Compartilhar em outros sites
MarVinOlivieraS 0 Denunciar post Postado Maio 10, 2012 apesar de o RewriteEngine estar habilitado no meu apache (inclusive verifiquei pelo phpinfo();) ele tá dando o erro 404 Compartilhar este post Link para o post Compartilhar em outros sites
baldit 0 Denunciar post Postado Maio 10, 2012 O que você precisa fazer é pegar os valores da url $params = explode("/", str_replace(strrchr($_SERVER["REQUEST_URI"], "?"), "", $_SERVER["REQUEST_URI"])); para cada $params será uma parte do link ex: www.meusite.com/busca/resultado-da-minha-busca $params[0] = busca $params[1] = resultado-da-minha-busca pega o valor nesse caso vamos dizer que existisse a página busca.php então o código ficaria assim if(file_exists($params[0].".php")) { include($params[0].".php"); } else { include("404.php"); // Página de erro caso tenha criado } espero ter ajudado!! =DD Equipe Beta Como vou incluir os parametros? onde coloco? Compartilhar este post Link para o post Compartilhar em outros sites
ell_cpu 0 Denunciar post Postado Maio 10, 2012 apesar de o RewriteEngine estar habilitado no meu apache (inclusive verifiquei pelo phpinfo();) ele tá dando o erro 404 como voce ta fazendo? Qual codigo ta usando? Compartilhar este post Link para o post Compartilhar em outros sites
MarVinOlivieraS 0 Denunciar post Postado Maio 10, 2012 como voce ta fazendo? Qual codigo ta usando? eu inseri aquele código no arquivo q irá abrir, por exemplo ler.php Compartilhar este post Link para o post Compartilhar em outros sites
ell_cpu 0 Denunciar post Postado Maio 10, 2012 eu inseri aquele código no arquivo q irá abrir, por exemplo ler.php Ve se tah assim: codigo da pag index.php //Pega url $url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : getenv("REQUEST_URI"); /* O array $dados terá tantos componentes quanto forem digitados pelo usuario por ex.: se ele digitar: * http://.../eventos/eventos, o array $dados terá 3 componentes: $dados[0]/$dados[1]/$dados[2], * $dados = explode('/',$url); separa os dados, removendo a '/' do inicio da string */ $dados = explode('/',$url); /* Recupera os dados digitados pelo usario*/ $pasta = isset($dados[1]) ? $dados[1] : ""; $arquivo = isset($dados[2]) ? $dados[2] : ""; $dadoUm = isset($dados[3]) ? $dados[3] : ""; $dadoDois = isset($dados[4]) ? $dados[4] : ""; $dadoTres = isset($dados[5]) ? $dados[5] : ""; $dadoQuatro = isset($dados[6]) ? $dados[6] : ""; $dadoCinco = isset($dados[7]) ? $dados[7] : ""; $dadoSeis = isset($dados[8]) ? $dados[8] : ""; $dadoSete = isset($dados[9]) ? $dados[9] : ""; $dadoOito = isset($dados[10])? $dados[10]: ""; $dadoNove = isset($dados[11])? $dados[11]: ""; $dadoDez = isset($dados[12])? $dados[12]: ""; /*********************** INCLUI AS PÁGINAS DO SITE ********************/ //Verifica se o arquivo existe if(file_exists("$pasta/$arquivo.php") || file_exists("$pasta/$arquivo/$dadoUm.php")){ //Se o arquivo n for um diretorio inclui do contrario da erro include_once((is_file("$pasta/$arquivo.php")) ? "$pasta/$arquivo.php" : "$pasta/$arquivo/$dadoUm.php"); //Verifica se o arquivo existe }elseif($pasta == "" && $arquivo == ""){ //Se o arquivo n for um diretorio inclui do contrario da erro include_once((is_file("$pasta.php")) ? "$pasta.php" : "principal.php"); }else{ //Do contrario mosta a pagina de erro include_once("erros/erro_404.php"); } /****************** IMPRIME AS PAGINAS NA TELA ************************/ codigo do .htaccess # verifica se o modulo rewrite está habilitado se sim executa o bloco dentro # habilita o modulo Rewrite Options +FollowSymLinks Options All -Indexes RewriteEngine On #Indica qual é a pasta base de todo o conteudo RewriteBase / # Mostra o caminho completo do meu arquivo index.php que caso nenhum desses comandos assim seja valido vai para ele. RewriteRule !.(\.rss|\.gif|\.GIF|\.jpg|\.JPG|\.jpeg|\.JPEG|\.png|\.PNG|\.ico|\.css|\.js|\.swf|\.SWF|\.flv|\.xml|\.XML|\.htm|\.html|\.pdf|\.rar|\|.txt|\.7z|\.7Z|\.php)$ index.php #Redireciona o erro ErrorDocument 404 /erros/erro_404.php ErrorDocument 500 /erros/erro_500.php codigo da pagina principal.php <h1> Olá Mundo! </h1> Coloca tudo na raiz e para acessar é so digitar: http://localhost/pasta-do-site/ Compartilhar este post Link para o post Compartilhar em outros sites
MarVinOlivieraS 0 Denunciar post Postado Maio 11, 2012 Ve se tah assim: codigo da pag index.php //Pega url $url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : getenv("REQUEST_URI"); /* O array $dados terá tantos componentes quanto forem digitados pelo usuario por ex.: se ele digitar: * http://.../eventos/eventos, o array $dados terá 3 componentes: $dados[0]/$dados[1]/$dados[2], * $dados = explode('/',$url); separa os dados, removendo a '/' do inicio da string */ $dados = explode('/',$url); /* Recupera os dados digitados pelo usario*/ $pasta = isset($dados[1]) ? $dados[1] : ""; $arquivo = isset($dados[2]) ? $dados[2] : ""; $dadoUm = isset($dados[3]) ? $dados[3] : ""; $dadoDois = isset($dados[4]) ? $dados[4] : ""; $dadoTres = isset($dados[5]) ? $dados[5] : ""; $dadoQuatro = isset($dados[6]) ? $dados[6] : ""; $dadoCinco = isset($dados[7]) ? $dados[7] : ""; $dadoSeis = isset($dados[8]) ? $dados[8] : ""; $dadoSete = isset($dados[9]) ? $dados[9] : ""; $dadoOito = isset($dados[10])? $dados[10]: ""; $dadoNove = isset($dados[11])? $dados[11]: ""; $dadoDez = isset($dados[12])? $dados[12]: ""; /*********************** INCLUI AS PÁGINAS DO SITE ********************/ //Verifica se o arquivo existe if(file_exists("$pasta/$arquivo.php") || file_exists("$pasta/$arquivo/$dadoUm.php")){ //Se o arquivo n for um diretorio inclui do contrario da erro include_once((is_file("$pasta/$arquivo.php")) ? "$pasta/$arquivo.php" : "$pasta/$arquivo/$dadoUm.php"); //Verifica se o arquivo existe }elseif($pasta == "" && $arquivo == ""){ //Se o arquivo n for um diretorio inclui do contrario da erro include_once((is_file("$pasta.php")) ? "$pasta.php" : "principal.php"); }else{ //Do contrario mosta a pagina de erro include_once("erros/erro_404.php"); } /****************** IMPRIME AS PAGINAS NA TELA ************************/ codigo do .htaccess # verifica se o modulo rewrite está habilitado se sim executa o bloco dentro # habilita o modulo Rewrite Options +FollowSymLinks Options All -Indexes RewriteEngine On #Indica qual é a pasta base de todo o conteudo RewriteBase / # Mostra o caminho completo do meu arquivo index.php que caso nenhum desses comandos assim seja valido vai para ele. RewriteRule !.(\.rss|\.gif|\.GIF|\.jpg|\.JPG|\.jpeg|\.JPEG|\.png|\.PNG|\.ico|\.css|\.js|\.swf|\.SWF|\.flv|\.xml|\.XML|\.htm|\.html|\.pdf|\.rar|\|.txt|\.7z|\.7Z|\.php)$ index.php #Redireciona o erro ErrorDocument 404 /erros/erro_404.php ErrorDocument 500 /erros/erro_500.php codigo da pagina principal.php <h1> Olá Mundo! </h1> Coloca tudo na raiz e para acessar é so digitar: http://localhost/pasta-do-site/ quando faço isso e digito localhost/pastadosite ele carrega a página de erro que eu criei e quando digito localhost/pastadosite/principal ele não encontra a página e apresenta a página 404 padrão do apache quando você fala para salvar o htaccess na pasta raiz, você fala na pasta do site não é? Compartilhar este post Link para o post Compartilhar em outros sites
ell_cpu 0 Denunciar post Postado Maio 11, 2012 quando você fala para salvar o htaccess na pasta raiz, você fala na pasta do site não é? Sim. Apaga ou comenta essa linha do .htaccess: #Indica qual é a pasta base de todo o conteudo RewriteBase / Compartilhar este post Link para o post Compartilhar em outros sites
MarVinOlivieraS 0 Denunciar post Postado Maio 11, 2012 fiz um teste jogando todos os arquivos diretamente na pasta htdocs e dessa forma o arquivo principal.php é carregado, porém quando tento acessar o arquivo /news/ler.php?idantes=40 dessa forma localhost/news/ler/40 não consigo. Compartilhar este post Link para o post Compartilhar em outros sites