/ / Reescrevendo uma URL de IC - php, codeigniter, url-rewriting, reescrever

Reescrevendo uma URL de IC - php, codeigniter, url-rewriting, reescrever

Eu nunca antes reescrevi um URL, exceto pararemover a parte index.php das minhas instalações do CodeIgniter, e isso é feito usando um trecho copiado e copiado no meu arquivo .htaccess. Eu não tive tempo para realmente aprender sobre o que o snippet faz, eu sou basicamente muito novo para reescrever URLs.

Eu tenho uma versão móvel do meu aplicativo da web. Cheguei a redirecionar os usuários móveis para um subdomínio: m.myhost.tld. No entanto, desde que eu estou usando (um) CodeIgniter (instalação), eu tenho que enviar esses usuários móveis para um controlador específico para celular, no meu caso /mobile/. Então, o controlador sempre aparece na minha barra de endereços.

Eu apenas não acho que isso é muito limpo, e eu estou procurando uma maneira de reescrever a URL; mas verdade seja dita, eu nem tenho certeza se isso é possível .. daí a minha pergunta. Eu quero me livrar do /mobile parte do controlador. Isso é possível?

Alguns exemplos:

Minha pasta "raiz" móvel atual é

http://m.myhost.tld/mobile

Eu gostaria de transformar este em

http://m.myhost.tld/

No momento, quando eu vou para http://m.myhost.tld/, ele redireciona para o controlador padrão do meu aplicativo CodeIgniter, que faz parte da versão "desktop" do aplicativo da web.

Outro exemplo:

Girando

http://m.myhost.tld/mobile#mobile/about

para dentro

http://m.myhost.tld/#mobile/about

Eu não tenho certeza se estou fazendo algum sentido aqui. Eu estou na minha cabeça, mas como eu disse, eu não sei exatamente o que é possível. Se o usuário estiver no m subdomínio, eu quero esconder o /mobile parte dos meus URLs. No entanto, somente quando estamos "no m subdomínio, então a versão "desktop" (que fica no www ) não é tocado de forma alguma.

Como eu disse algumas vezes agora, eu não tenho certezao que é possível e o que eu estou procurando pode ser muito complexo ou algo assim. Eu pensei em perguntar, já que aprender perguntando é o que eu faço de melhor. Por favor, não seja muito difícil para mim se isso se mostrar uma pergunta idiota, senhores profissionais;)

EDITAR: Eu pensei em editar porque não quero sair errado. Eu não estou necessariamente procurando respostas exatas para a minha pergunta. Eu também agradeço a documentação / tutoriais / artigos que podem me guiar para uma solução. Se eu conseguir chegar a uma solução, eu irei, claro, aprender muito. Mais.

Muito obrigado.

Respostas:

2 para resposta № 1

Isso poderia ser muito simples de uma solução, mas por que não em sua configuração de roteamento fazer algo simples como

na sua configuração fazer algo como

if ($_SERVER["SERVER_NAME"] == "m.myhost.tld")
$route["default_controller"] = "mobile";

Isso tornaria o controlador padrão mobil para que você não tivesse que ter / mobile ...

Como eu disse, talvez simples demais


0 para resposta № 2

EDIT: Não funciona, mas talvez alguém pode transformá-lo em algo que faz

Tente isto:

RewriteCond $1!^mobile/
RewriteCond %{HTTP_HOST} ^m.myhost.tld
RewriteRule (.*) /mobile/$1 [L]