Dúvida Com Criação De "sub Sites"
#1
Posted 26/01/2009, 00:07
Estou qurendo criar um site onde terão vários "sub-sites" utilizando mesmo banco de dados e domínio.
A idéia que eu quero fazer é a seguinte.. pegar o nome no final do domínio, e abrir o site correspondente. Por exemplo:
www.meusite.com.br -> Abre um site..
www.meusite.com.br/nome_do_site_/ -> ele pega o nome_do_site como variavel login.. e abre um site padrão de acordo com as informações cadastradas no banco de dados correspondente a aquele login ->
www.meusite.com.br -> Layout A com informações de A
www.meusite.com.br/site1/ -> Layout B com informações do site1
www.meusite.com.br/site2/ -> Layout B com informações do site2
www.meusite.com.br/site3/ -> Layout B com informações do site3
Existe essa possibilidade?
Penso que vai ser usa através da quey Get.. mais não sei como desenvolver isso.
Aguardo resposta.
Anderson Possamai
-----------------
Aprendendo PHP .. Javascript .. Ajax!
#2
Posted 26/01/2009, 07:47
Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens!
#3
Posted 26/01/2009, 12:39
Agora para carregar dados de acordo com a página:
$page_url = explode ("/", $_SERVER['PHP_SELF']);
if(ereg("^[0-9]+$", $page_url[1])) $user = (int)$page_url[1];
Dá um explode na página pelas '/' e pega a parte do usuário.
Mas, faça uma validação para ter certeza que não vão inserir dados que comprometam seu banco.
No caso, eu só aceito valores que sejam números.
Espero ter ajudado.
#4
Posted 30/01/2009, 00:28
Sim, dá pra fazer do jeito que vc falou! Mas você teria que colocar meusite.com.br/index.php?cliente=nome_do_site para fazer com GET!
Então.. na verdade dessa maneira já sei fazer, porém queria fazer através da query GET. Eu queria fazer da maneira por pasta, pois fica mais prático pra digitar .. Por exemplo. www.meusite.com.br/site1/ -> www.meusite.com.br/cliente.php=site1
Mais difícil neh.. ehehhe
Para layouts diferentes, em cada pasta vc deve ter arquivos estilo, topo, rodapé diferentes.
Agora para carregar dados de acordo com a página:
$page_url = explode ("/", $_SERVER['PHP_SELF']);
if(ereg("^[0-9]+$", $page_url[1])) $user = (int)$page_url[1];
Dá um explode na página pelas '/' e pega a parte do usuário.
Mas, faça uma validação para ter certeza que não vão inserir dados que comprometam seu banco.
No caso, eu só aceito valores que sejam números.
Espero ter ajudado.
Hum.. vou estudar certinho esse seu código.. acho que vai me ajudar.. porém quero fazer por login mesmo pois como falei fica mais prático digitar o nome do site do que um código né..
Eu pesquisando na net achei alguma coisa pra redireciona o site www.meusite.com.br/site1/ .. para a página 404 (página não existente no servidor).. e trabalhar em cima do que a página 404 retornar. Isso é viável?
Desde já agradeço a atenção.
Obrigado.
Anderson Possamai
-----------------
Aprendendo PHP .. Javascript .. Ajax!
#5
Posted 30/01/2009, 08:12
Então.. na verdade dessa maneira já sei fazer, porém queria fazer através da query GET. Eu queria fazer da maneira por pasta, pois fica mais prático pra digitar .. Por exemplo. www.meusite.com.br/site1/ -> www.meusite.com.br/cliente.php=site1
Cara, URLs amigáveis são a solução para você!
Veja este link Lá explica direitinho como faz, pra que serve e as vantagens!
Abraços!
Edição feita por: maykel, 30/01/2009, 08:12.
Formatação^^
Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens!
#6
Posted 02/02/2009, 12:53
Então.. na verdade dessa maneira já sei fazer, porém queria fazer através da query GET. Eu queria fazer da maneira por pasta, pois fica mais prático pra digitar .. Por exemplo. www.meusite.com.br/site1/ -> www.meusite.com.br/cliente.php=site1
Cara, URLs amigáveis são a solução para você!
Veja este link Lá explica direitinho como faz, pra que serve e as vantagens!
Abraços!
Opa maykel.. vlw pela dica.. li lá o arquivo... montei o .htaccess pro meu site dessa maneira:
Options +FollowSymLinks RewriteEngine On RewriteCond %{SCRIPT_FILENAME} !-f RewriteCond %{SCRIPT_FILENAME} !-d RewriteRule ^(.+)\/?$ /index.php?login=$1 ErrorDocument 404 /erro.php
Só que o seguinte.. minha idéia era que funcionasse assim:
Tanto www.meusite.com.br/login e www.meusite.com.br/login/ entraria como /index.php?login=login
até ae beleza.. só que quando eu tento acessar www.meusite.com.br/contato.php ou www.meusite.com.br/arquivo.php
ele nao acessa.. ele interpreta o arquivo.php como login tbm... Como fazer pra ele ignorar isso?
Outro erro que também reparei, é que se eu digito www.meusite.com.br/login/qualquer_coisa ... ele pega login/qualquer_coisa como login.. só que as imagens e css desabilitam, como se tivesse em outra pasta... tem como ignorar isso?
A princípio através do .htaccess tá meio complicado pra mim (até pq me enrolo com regex hehehe).. vou fazer uns testes com o scripr que o lanlan passou...
Obrigado desde já.. to quebrando a cabeça aqui, mais daqui a pouco sai.. hehehe
Abraços,
Anderson Possamai
-----------------
Aprendendo PHP .. Javascript .. Ajax!
#7
Posted 02/02/2009, 13:52
Se vai fazer como mencionou onde cada site tem sua pasta específica basta pegar o nome da pasta
Como...???? em cada pasta terá um index.php, que em seu cód vc pega a URI com $_SERVER['REQUEST_URI']
provavelmente virá uma barra no início e outra no final dessa 'pegada' aí ... bom mas aí é fácil tratar neh
julgando que cada pasta terá como nome uma identificação única de cada subsite então teu problema está resolvido.
Agora se ainda quiser trabalhar com mod_rewrite legal.... abri um tópico ontem sobre isso e faço de um jeito bem simples e fácil de sacar, inclusive é uma forma que ignora os arquivos que vc definir... como css jpg gif etc...
... mas não use o método do erro 404, pois toda solicitação a seu site gera um log de erro no servidor... sei lá... não acho legal...
Acho que para o que quer não precisa nem um nem outro... basta pegar a URI, já que a pasta do subsite vem logo depois da URL root torna-se fácil
Sei lá... fica a dica. Até mais
canaldev.com.br
sistemabasico.com.br
twitter.com/sistemabasico
twitter.com/lunelli
#8
Posted 02/02/2009, 15:22
Amigo vc não precisa trabalhar com MOD_REWRITE nem o método do redirecionamento para ERROR 404 para oque vc quer fazer
Se vai fazer como mencionou onde cada site tem sua pasta específica basta pegar o nome da pasta
Como...???? em cada pasta terá um index.php, que em seu cód vc pega a URI com $_SERVER['REQUEST_URI']
provavelmente virá uma barra no início e outra no final dessa 'pegada' aí ... bom mas aí é fácil tratar neh
julgando que cada pasta terá como nome uma identificação única de cada subsite então teu problema está resolvido.
Agora se ainda quiser trabalhar com mod_rewrite legal.... abri um tópico ontem sobre isso e faço de um jeito bem simples e fácil de sacar, inclusive é uma forma que ignora os arquivos que vc definir... como css jpg gif etc...
... mas não use o método do erro 404, pois toda solicitação a seu site gera um log de erro no servidor... sei lá... não acho legal...
Acho que para o que quer não precisa nem um nem outro... basta pegar a URI, já que a pasta do subsite vem logo depois da URL root torna-se fácil
Sei lá... fica a dica.
Eae crab..
então.. utilizei o seu código do link que passou (até fiz um comentário nele.. hehehe)..
Bom.. seu código funciona da maneira que eu quero. Fiz da seguinte maneira.
.htacess
RewriteEngine On RewriteRule !\.(jpg|jpeg|gif|css|swf|txt|js|png)$ index.php
index.php
<? $url = explode("/", $_SERVER['REQUEST_URI']); $valor_extraido = array_shift($url); $login= $url[0]; ?>
Até ae beleza, porém se eu digito www.meusite.com.br ele entra no site...
Se eu digitar www.meusite.com.br/login ... ele entra no site com a variável login
Agora se eu digitar www.meusite.com.br/login/ ... ele entra no site com a variável login, porém some tudo as imagens e css.. =/
Outra coisa que acho que não exclareci direito é o seguinte.. quando digo trabalhar com 2 layout, é da seguinte maneira:
1) www.meusite.com.br -> Entra no site principal..
2) www.meusite.com.br/login/ -> Entra num site secundário (escolhido via PHP), puxando informações do banco de dados conforme o login.
Na verdade não vão ter pastas.. vai ter 2 layouts somente, o principal.. e um secundário quando for entrar com login.
Porém ta dando esse problema das imagens.
Obrigado pelas respostas galera,
Abraços,
Anderson Possamai
-----------------
Aprendendo PHP .. Javascript .. Ajax!
#9
Posted 02/02/2009, 16:01
Quando ao lance dos css e jpgs estarem quebrados tente colocar um <base href="http://www.teusite.com.br/" /> entre as tags <head></head> da página.
Mas aí já estamos entrando em xhtml
Boa sorte
Até mais
canaldev.com.br
sistemabasico.com.br
twitter.com/sistemabasico
twitter.com/lunelli
#10
Posted 03/02/2009, 18:29
Eu só to com outro probleminha agora.. ele ta interpretando arquivos mesmo como "logins", ae se eu quero direcionar para contat.php ele não vai.. ehhehe
Vo ter de desenvolver alguma coisa pra tratar os arquivos.
Vlw pela ajuda..
Obrigado,
Possamai
-----------------
Aprendendo PHP .. Javascript .. Ajax!
#11
Posted 03/02/2009, 21:20
aquele formato redireciona o tráfego para a index.php....
se vc quer exibir o conteudo do arquivo contato.php poderia fazer assim
www.teusite.com.br/contato
na index vc pega o "contato" daquela forma lá que viu no meu tópico sobre rewrite url, dividindo em arrays e tals... e faz o que quiser com ele...
No caso aplica um switch aí dizendo que caso seja "contato" execute um include do arquivo contato.php
Não tem mistério... mas requer estudo e teste.
Até mais
canaldev.com.br
sistemabasico.com.br
twitter.com/sistemabasico
twitter.com/lunelli
0 user(s) are reading this topic
0 membro(s), 0 visitante(s) e 0 membros anônimo(s)