mexicanox 7 Denunciar post Postado Junho 15, 2012 Seguinte, o que eu preciso é algo que eu acredito ser relativamente simples, mas eu nao to conseguindo fazer. Estou fazendo um site com Code Igniter e o que eu quero é fazer com que quando o endereço /uploads/videos/* for acessado, seja feito um redirecionamento com o mod_rewrite para uma pagina digamos /site/check/, que basicamente fai fazer algumas verificações, tipo se o usuario esta logado etc, e depois liberar o video. O que eu tenho ate agora é isso: RewriteEngine on RewriteCond $1 !^(images|css|js|uploads|index\.php|robots\.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [QSA] #ate aqui é o uqe esta no manual do proprio CI e sempre funciou normal e ainda funciona RewriteRule uploads\/videos.* site/check/ #a regra acima é que nao esta dando certo, simplesmente da um erro 404 Page Not Found do CI ja estou tentando isso a alguns dias e nada da certo, ja estou meio desesperado. flws Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Junho 15, 2012 note as rules do CI. Tente dessa forma aqui: RewriteEngine on #ate aqui é o uqe esta no manual do proprio CI e sempre funciou normal e ainda funciona RewriteRule ^uploads\/videos/?(.*)$ /site/check/ RewriteCond $1 !^(images|css|js|uploads|index\.php|robots\.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [QSA] #a regra acima é que nao esta dando certo, simplesmente da um erro 404 Page Not Found do CI Veja que mudei a ordem, e dei uma corrigida básica na tua rule Compartilhar este post Link para o post Compartilhar em outros sites
mexicanox 7 Denunciar post Postado Junho 17, 2012 mesmo assim vai para aquela pagina de erro 404 do CI, é isso que ta me complicando, parece que ele nao encontra a pagina, mas ela existe com certeza. flws Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Junho 17, 2012 tem mais alguma coisa no teu htaccess ? Adicione o LAST: RewriteRule ^uploads\/videos/?(.*)$ /site/check/ [L] você deixou na ordem que eu coloquei ne?! Compartilhar este post Link para o post Compartilhar em outros sites
mexicanox 7 Denunciar post Postado Junho 18, 2012 O meu htaccess é so isso que postei, mesmo colocando o [L] ainda vai para o 404 do CI, atualmente esta assim: RewriteEngine on RewriteRule ^uploads\/videos/?(.*)$ site/check/ [L] RewriteCond $1 !^(images|css|js|uploads|index\.php|robots\.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L,QSA] Uma coisa que acho que nao expliquei direito no inicio é que o o diretorio "uploads/videos" nao é um controller e sim para onde vai os uploads do site. Eu acho que não esta dando muito certo por que o CI esta tratando o "uploads/videos" como um controller uploads e tanta chamar o metodo videos, como é um controller inexistente cai direto no 404. Esta é uma teoria minha nao sei se esta correto mais.... flws Compartilhar este post Link para o post Compartilhar em outros sites
mexicanox 7 Denunciar post Postado Junho 20, 2012 Consegui resolver de uma maneira meio estranha, basicamente eu coloquei a mesma regra do htaccess no routes do CI no caso ficou assim. .htaccess RewriteEngine on RewriteRule ^uploads\/videos/(.*) site/check/ [L] RewriteCond $1 !^(images|css|js|uploads|index\.php|robots\.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [QSA] config/routes.php $route['uploads/videos/(.*)'] = 'site/check/'; E funcionou corretamente, mas cai em um outr problema que nao tinha pensado. Este rewrite eu queria fazer pensado em restringir o acesso direto ao arquivo de video, assim impedido o download pela URL completa, ex: http://meusite/uploads/videos/meu_video.flv O que eu quis era que ao acessar a url diretamente fosse feita a verificação no controller "check" e caso o usuario esteja na pagina certa, que seria "curso/assistir/meu_video" o acesso fosse liberado para a visualização do video, mas negado caso fosse acessado direto. Para exibir os videos eu estou usando o flowplayer. flws Compartilhar este post Link para o post Compartilhar em outros sites
Luiz Picolo 3 Denunciar post Postado Junho 20, 2012 Bem, eu acredito que você não necessariamente faça isso no htaccess mas sim nas rotas de codeigniter. $route['/uploads/videos/'] = "site/check"; Compartilhar este post Link para o post Compartilhar em outros sites
mexicanox 7 Denunciar post Postado Junho 21, 2012 O Estranho é que se eu fizer só nos routes ou só no htaccess não funciona, estranhamente tem que ser nos dois para dar certo. flws Compartilhar este post Link para o post Compartilhar em outros sites