Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Perfect Lion

URLs amigáveis

Recommended Posts

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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 php4Quanto 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

Compartilhar este post


Link para o post
Compartilhar em outros sites

como faz isso para arquivos html ?! ao invés de pastas...Noticias/noticia-0-29-2.htmlficava index.php?page=Noticias&action=noticia&categoria=0&idnoticia=29&sessao=2

Compartilhar este post


Link para o post
Compartilhar em outros sites

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 offphp_flag register_globals onRewriteEngine OnOptions +FollowsymlinksRewriteBase /RewriteCond %{REQUEST_FILENAME} -dRewriteRule ^.* - [L,QSA]RewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^([^/]+)/?$ /floguito.php?id=$1 [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^([^/]+)/foto/([^/]+)/?$ /floguito.php?id=$1&foto=$2 [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^([^/]+)/todas/?$ /todas.php?id=$1 [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^([^/]+)/todas/pagina/([^/]+)/?$ /todas.php?id=$1&pagina=$2 [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^([^/]+)/geral/?$ /geral.php?id=$1 [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^([^/]+)/perfil/?$ /perfil.php?id=$1 [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^([^/]+)/favoritos/?$ /favoritos.php?id=$1 [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^([^/]+)/favoritos/pagina/([^/]+)/?$ /favoritos.php?id=$1&pagina=$2 [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^([^/]+)/soufavorito/?$ /favoritos_adicionados.php?id=$1 [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^([^/]+)/soufavorito/pagina/([^/]+)/?$ /favoritos_adicionados.php?id=$1&pagina=$2 [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^([^/]+)/musica/?$ /minhamusica.php?id=$1 [L]

infelizmente esta causando "internal error" no meu host...meu host é na locaweb...obrigado desde já

Compartilhar este post


Link para o post
Compartilhar em outros sites

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 OnRewriteBase /RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule .(/)?$ /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 http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

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. ;)/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tentei de tudo e nada :wacko:/>

1º como é a url normal http://localhost/multi/

2º url com "anormal" http://localhost/multi/?p=dicas&dicaID=2

ou http://localhost/multi/?p=ver&cat=PHP&dicaID=1

 

.htaccess

Options +FollowSymLinks
	 RewriteEngine on
	 RewriteRule /multi//(.*)/(.*)/(.*)/(.*)/$ /multi/?$1=$2&$3=$4
no index uso switch para "pegar" as páginas com o conteudo

nos links (menu) estão assim:

<ul>
	<li><a href="/">home</a></li>
	<li><a href="?p=dicas">Dicas</a></li>
	<li><a href="?p=ver">Portifólio</a></li>
	<li><a href="?p=sobre">Sobre</a></li>
 </ul>
 
 <?php
	 $p =  $_GET['p'];
	  switch($p){
		 case "contato":
			 include('contato.html');	 
		 break;
		 case "dicas":
			 include('dicas.php');
		 break;
		  default:
			 echo "BELEZA";
		 break;
	 }
	 ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tutorial legal,porém eu acho parte do que você fez não muito legal.

Fazer um rewrite de um jeito que possa pegar as coisas da forma convencional é muito melhor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

galera axo q o meu host nao aceita urls imagaveis

 

 

no arquivo

http://75.125.228.234/~wwwwill/.htaccess

 

 

RewriteEngine On

RewriteBase /

RewriteRule .(/)?$ a.php

 

na raiz do diretorio eu tenho o arquivo a.php

http://75.125.228.234/~wwwwill/a.php

 

 

qndo eu entro no link

http://75.125.228.234/~wwwwill/qualquerurl/

ele deveria abrir o arquivo a.php mas da erro

404 Not Found

 

aki em casa funciona corretamente mas no host nao!!

 

ajudem ai!!!abras

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.br/minhavo/com/voce

 

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

 

http://www.site.com.br/minhavo/com/voce/categorias

http://www.site.com.br/minhavo/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 ;)/>

 

Aqui eu testei.. e se você colocar Ex:

 

adicionar / antes da palavra tbm

      <a href="/categorias/">Categorias</a>
      <a href="/php/">Php</a>
ele vai te levar para o Root do site de depois acessar adicionar o link do href na URL..

Vejam ai se da certo..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Preciso de um HELP, consegui fazer funcionar as urls que eram assim http://localhost/adm/list_produtos.php funcionar assim http://localhost/list_categoria só que eu tenho um problema,

 

essa pagina lista as categorias e em cada registro tem um link para editar o registro

ex:

http://localhost/updt_produto.php?id_produto=10

 

quando eu cliclo aparece, VOCÊ ESTÁ EM HOME

 

como eu faço para que ele abra a página certa (updt_produto.php) ?

 

desculpe se a pergunta é idiota, é que eu realmente nao sei como fazer

 

.htaccess

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

index.php

<?
$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("adm/" . $gets[0] . ".php")){
require ("adm/" . $gets[0] . ".php");
}else{
echo "você ESTÁ NA HOME";
}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Perfect Lion Jovem tipo eu tava querendo o seguinte tipo queria coloca parecido com o twitter sabe na pagina inicial se alguem digita o nome do usuario aparece exemplo

 

www.meusite.com.br/PerfectLion

Compartilhar este post


Link para o post
Compartilhar em outros sites

Perfect Lion Jovem tipo eu tava querendo o seguinte tipo queria coloca parecido com o twitter sabe na pagina inicial se alguem digita o nome do usuario aparece exemplo

 

www.meusite.com.br/PerfectLion

 

usa assim

 

RewriteEngine on

RewriteRule ^teu_user$ "http\:\/\/www\.twitter\.com\/teu_user" [R=302,L]

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.