Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #59 da revista programar. Faz já o download aqui!

ruben007

mvc links curtos

Mensagens Recomendadas

ruben007    1
ruben007

Alguém me consegue explicar como posso fazer o meu url de isto:

localhost/test_mvc/index.php?path=user

para:

localhost/test_mvc/user

Eu sei que tenho que alterar a página htacess, mas não percebo muito bem disto, será que me podiam ajudar?

Tenho que ter algum tipo de classe? e que classe?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
capesone    3
capesone

Pesquisa sobre o ModRewrite em especifico.

Depois para ler os Gets usas a mesma forma tradicional.

RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-f #condiciona ficheiros

RewriteCond %{SCRIPT_FILENAME} !-d #condiciona directorios

RewriteCond %{REQUEST_URI} !\.(gif|jpg|png|css)$ [NC] #condiciona extençoes de ficheiros

RewriteRule ^/ajx$ /dir/file.php [L] #Previne conflito com o ajax, em conjunto com um if adicionado a baixo

RewriteRule ^/adm/(.*)$ /adm_dir/index.php?geter=$1 [L] #Previne que o directorio de adminstraçao esteja a ser enviado para o index normal do site

RewriteRule ^([^/]+)/(.*)$ index.php?action=$1&parm=$2 [L] #Reescreve todo o outro conteudo que nao seja identificado acima.

Para carregar por exemplo uso uma pequena funcao:

function start(){
loader::data_get(); #qual area a carregar?
loader::patch_b(); #constroi patchs a carregar

#verifica se é ajax
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
require_once('processer.php');
}else{
 #se ficheiro do tema existir, entao carrega-o
 if(file_exists($this->patch_loader['t_file'])) $this -> p_layout =	require_once($this->patch_loader['t_file']);
 else $this->error = "O ficheiro de temas não foi encontrado!<br/>";
 }
}
function data_get(){
#accao
if(isset($_GET['action'])){
$this -> action=$_GET['action'];
if(empty($this -> action) || $this -> action == null || $this -> action == "") $this -> action = "home";
}else $this -> action="home";

#parametros
if(isset($_GET['parm'])){
$this -> parms = explode("/", $_GET['parm']);
foreach($this -> parms as $key => $value){if(empty($value) || $value == null || $value=="") unset($this -> parms[$key]);}
}else $this -> parms = null;
}

Nao te esqueças de adaptar para as tuas necessidades.

Editado por capesone

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.