Ir para conteúdo

POWERED BY:

Arquivado

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

falcao544

reescrita de URL!

Recommended Posts

Pessoal tá certo esse meu .htaccess?

 

RewriteEngine on
RewriteBase /htdocs
RewriteRule ^([a-z,0-9,A-Z,_-]+)$ index.html?id=$1 [R=301]

Porque tá dando erro(404)!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloca uma barra depois de htdocs (que deve ser um caminho válido para o servidor - diretório ou alias) e remove a flag de regra no final.

Compartilhar este post


Link para o post
Compartilhar em outros sites

RewriteEngine on
RewriteBase /htdocs
RewriteRule ^([a-z,0-9,A-Z,_-]+)$ index.html?id=$1 [R=301]

Qual o objetivo desse .htaccess, @falcao544 ?

 

Detalhe, quando for colocar alguma coisa no RewriteBase, pense que é a partir do seu DocumentRoot.

 

Então, se seu DocumentRoot tem o valor /var/www/html e você coloca o RewriteBase como /htdocs o Apache vai procurar /var/www/html/htdocs/index.html

 

Na regra, você está dizendo que qualquer coisa que contenha entre a-z (maiúsculo ou minúsculo), virgulas (não precisa delas para separar os intervalos), mais um underline e um hífen repetidos 1 ou mais vezes serão REDIRECIONADOS com HTTP 301 para index.html que está em $DocumentRoot/htdocs/index.html

 

É isso que você quer fazer ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que o problema é esse RewriteBase! Eu coloquei ele porque ontém eu entrei no chat do hospedador(que é free) e o pessoal disse para eu usar RewriteBase!

 

Evandro essa flag é essa aqui? [R=301]

 

Se for eu queria deixar ela por enquanto so para mudar a URL lá em cima! Foi o Julio que falou para eu usar R=301!

 

Olhe esse tópico:

http://forum.imasters.com.br/index.php?app=forums&module=forums&section=findpost&pid=1563204

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se quiser mesmo mudar a URL, deixe, mas aí entramos em questões de SEO. Se for MESMO por enquanto ok. Se a solução for ficar em definitivo, sugiro o cabeçalho 302.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Evandro tentei esse código mas não funcionou!

 

RewriteEngine on
RewriteRule ^([a-z,0-9,A-Z,_-]+)$ index.html?id=$1 [R=302]

Erro 404 denovo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, vamos fazer alguns testes rápidos. Pesquisando por cima vi que soluções com redirecionamento puro de headers HTTP antendem melhor à necessidade que você está passando.

 

Primeiramente crie um arquivo chamado teste.php com o seguinte conteúdo

<?php echo '<pre>';
print_r($_GET);
echo '</pre>';

 

Agora no .htaccess, deixe assim:

RewriteEngine on
RewriteRule ^(.*)$ teste.php?regra=$1

Teste com "seudominio.com/teste"

 

Agora vamos trocar a expressão regular de forma que ela só tenha validade para o que nos interessa:

RewriteRule ^([\w\d_-])$ teste.php?regra=$1

Teste novamente com as regras que devem passar e com as que não devem, para verificar a integridade da REGEX.

 

Agora uma teste.html temporária para verificar se ela está recebendo os parâmetros corretamente:

RewriteRule ^([\w\d_-])$ teste.html?id=$1
<script type="text/javascript">window.onload = function(){
   alert(window.href.location);
}</script>

 

Após verificado, adicione a flag e retorne a sua index.html correta

RewriteEngine on
RewriteRule ^([\w\d_-])$ index.html?id=$1 [R=301]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro teste com:

Primeiramente crie um arquivo chamado teste.php com o seguinte conteúdo

 

<?php echo '<pre>';

print_r($_GET);

echo '</pre>';

 

 

 

Agora no .htaccess, deixe assim:

 

RewriteEngine on

RewriteRule ^(.*)$ teste.php?regra=$1

 

 

 

Teste com "seudominio.com/teste"

NOTA: Mesmo que eu não digitasse nada depois do .org/ dava o erro abaixo! E se eu digitasse alguma coisa(teste) dava também o mesmo erro!

 

Erro 500! Página do erro:

http://hosting.zymic.com/500/

Erro:

 

500 Internal Service Error

You have reached this page due to a malfunctioning .htaccess file.

This may be caused by one of two things:

Your .htaccess may not conform with the strict htaccess policy of Zymic,

to fix this automatically, please click here

If the first option does not work, please drop by Zymic IRC and we will assist you in fixing it.

 

Segundo teste com:

Agora vamos trocar a expressão regular de forma que ela só tenha validade para o que nos interessa:

 

RewriteRule ^([\w\d_-])$ teste.php?regra=$1

 

 

 

Teste novamente com as regras que devem passar e com as que não devem, para verificar a integridade da REGEX.

Nota: Eu coloquei RewriteEngine on no arquivo .htaccess!

 

Usando depois do .org o teste, ou seja meusite.org/teste dava o erro 404! Page not found!

Página do erro:

http://hosting.zymic.com/404/

Erro:

404 Page Not Found!

 

The address you have entered has not been found. This may be due to an outdated link, typo or a page no longer on our system.

 

This website is hosted freely by Zymic Free Web Hosting.

 

Our free web hosting comes with PHP, MySQL, FTP, and a web based control panel. But best of all, AD-FREE!

 

 

Terceiro Teste com:

 

Agora uma teste.html temporária para verificar se ela está recebendo os parâmetros corretamente:

 

RewriteRule ^([\w\d_-])$ teste.html?id=$1

 

 

<script type="text/javascript">window.onload = function(){

alert(window.href.location);

}</script>

Nota: Eu coloquei RewriteEngine on

 

Digitei meusite.org/teste

 

Página do erro:

http://hosting.zymic.com/404/

 

Erro:

 

404 Page Not Found!

 

The address you have entered has not been found. This may be due to an outdated link, typo or a page no longer on our system.

 

This website is hosted freely by Zymic Free Web Hosting.

 

Our free web hosting comes with PHP, MySQL, FTP, and a web based control panel. But best of all, AD-FREE!

 

 

 

Quarto teste com:

Não entendi essa "flag":

 

Após verificado, adicione a flag e retorne a sua index.html correta

 

RewriteEngine on

RewriteRule ^([\w\d_-])$ index.html?id=$1 [R=301]

Usei www.meusite.org/teste

 

Mas mesmo assim deu o erro 404!

 

 

 

Se quiser fazer testes:

 

www.guerrasmedievais.zzl.org

 

Dps eu te passo a senha se quiser!

 

Ou adiciona no msn eu vou alterando os arquivos enquanto você tenta! Outra coisa!

 

Todos os arquivos utilizados no teste estavam nessa pasta:

/www/zzl.org/g/u/e/guerrasmedievais/htdocs/

 

 

Obrigado, Vitor!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Flag é o conteúdo que vem dentro dos [colchetes]

 

Creio que seu sistema não esteja com suporte a RewriteEngine habilitado. Entre em contato com o suporte para confirmar a possibilidade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tem suporte XD pois eu to usando um FREE Host! O zymic.com! Eu já fui no IRC deles e disseram que eles tem suporte! E o erro 500 confirma isso!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode ter suporte a .htaccess mas não a rewriteengine.

 

Se você escrever qualquer coisa sem nexo nem sentido não comentado no .htaccess vai gerar o erro 500

 

Todos os testes realizados localmente apresentaram resultados satisfatórios dentro do previsto.

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.