Jump to content


Photo

Rewrite Rule, Probleminha Ao Ignorar Casos


  • Faça o login para participar
1 reply to this topic

#1 Stormbringer

Stormbringer

    I'd love to stay with you all

  • Ex-Admins
  • 2927 posts
  • Sexo:Não informado
  • Localidade:Goiânia - GO
  • Interesses:Atualmente: pesquisa e desenvolvimento de web-games

Posted 01/12/2011, 15:43

bom, seguinte... tenho o seguinte .htaccess na raiz:

Options -MultiViews -Indexes
ErrorDocument 404 /index.php



<IfModule mod_rewrite.c>
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d 

RewriteRule .+ - [L]
RewriteRule ^([^/]+)$ index.php?perfil=$1 [QSA,L]

</IfModule>


e funciona beleza... tudo que for digitado na url como
http://www.meudominio.com/batatinha
, caso nao exista tal diretorio

é automaticamente interpretado como
http://www.meudominio.com/index.php?perfil=batatinha

funciona beleza... POREM, eu queria dar um jeito de, caso o que o cara digita na url seja algo do tipo:
http://www.meudominio.com/batatinha/cenourinha.html

caso nao exista batatinha/cenourinha.html ele seja simplesmente redirecionado(nem precisa ser rewrite, pode ser um simples redirect) para a index.php da raiz

ha como fazer isso?

Abraços

Edição feita por: Stormbringer, 01/12/2011, 15:44.

๑۩۞۩๑Let the Carnage Begin!!๑۩۞۩๑


#2 Stormbringer

Stormbringer

    I'd love to stay with you all

  • Ex-Admins
  • 2927 posts
  • Sexo:Não informado
  • Localidade:Goiânia - GO
  • Interesses:Atualmente: pesquisa e desenvolvimento de web-games

Posted 05/12/2011, 15:25

um rapaz do forum iMasters me ajudou, eis uma solução aceitavel pro problema:

Feitoria..
E de quebra, você ganhou um anti-XSS e anti-SQL Injection via URL. :natallaugh:

Options -MultiViews -Indexes
ErrorDocument 404 /index.php

<IfModule mod_rewrite.c>
        RewriteEngine on
        
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} ^.*\.([a-zA-Z]{3})$
        RewriteRule ^.*$ /index.php [R=301,L]
        
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} ^([a-zA-Z/_-]*)$
        RewriteRule ^(.*)$ /index.php?perfil=$1 [QSA,L]
        
</IfModule>

Se digitar qualquer arquivo COM EXTENSÃO, que NÃO exista, tipo lalala.php ou lalala.css, ele manda direto pra index, sem choro nem vela.
Acessar um arquivo existente, é permitido.
Acessar uma pasta, existente ou não, manda pra index com a query string.

Acho que agora tá 100%.
Faça os testes na URL que te passei lá em cima.. vou deixar por umas horas on ainda. :natalhappy:

EDIT: O único porém é o fato de não mais aceitar ponto nos perfis, mas acho que isso já é assim no seu script php, né? Exemplo:
http://curso.haxor.com.br/fdsfsd.fsdfssd
Não aplica nenhuma regra nesse caso.


Resolvido ;)

Edição feita por: Stormbringer, 05/12/2011, 15:25.

๑۩۞۩๑Let the Carnage Begin!!๑۩۞۩๑





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq