Pergunta

Foi -me pedido para descobrir como o sistema Concrete5 funciona para um empregador e não consigo descobrir algo.

Eu tenho concreto5 instalado em um diretório no servidor chamado /realprofessionals. Quando o sistema Concrete5 faz novas páginas, dá a elas seus próprios caminhos absolutos, por exemplo:

http://www.wmcpartners.com/realprofessionals/footer

No entanto, na verdade não fez uma pasta no /realprofessionals diretório chamado footer. Então, como isso funciona? Como pode http://www.wmcpartners.com/realprofessionals/footer ser um link de trabalho?

Foi útil?

Solução

Resposta curta: Todas as solicitações de página estão realmente passando por um e único arquivo index.php. O conteúdo da página é armazenado no banco de dados, não nos arquivos no servidor.

Resposta longa:Concrete5 (e a maioria dos CMs baseados em PHP para esse assunto) funcionam assim: todas as solicitações são roteadas através do arquivo index.php. Esse roteamento é aplicado com algumas regras mod_rewrite no arquivo .htaccess. As regras dizem "para qualquer solicitação, não vá para essa página, mas, em vez disso, vá para index.php e passe o restante do caminho solicitado como parâmetros $ _Get". Em seguida, no código Index.php (ou em algum outro código incluído pelo arquivo index.php), a página solicitada é determinada com base no caminho que foi colocado nos parâmetros $ _get pelo Apache (conforme a regra Mod_rewrite in. htaccess) e o conteúdo apropriado é recuperado do banco de dados.

O armazenamento de conteúdo no banco de dados em oposição aos arquivos no servidor tem várias vantagens. Por exemplo, você pode reutilizar o mesmo modelo HTML-cabeçalho, rodapé, barra lateral-em todas as páginas e, se você alterar o modelo, ele será automaticamente refletido em todas as páginas em que for usado. Além disso, facilita a criação de páginas e dar a elas qualquer URL que desejar (por exemplo, não ".php" extensão no final, ou/2010/111/data/baseado/caminhos/for/blog/posts).

A desvantagem, é claro, é que toda solicitação requer muitas consultas de banco de dados, mas para a maioria dos sites (aqueles sem zilhões de visualizações de página), a troca vale a pena (e vários tipos de cache podem ajudar a reduzir o desempenho do desempenho).

Outras dicas

A resposta da Jordânia é excelente, eu acrescentaria que você provavelmente não vê index.php no URL porque você permitiu URLs bonitos (Digite 'Pretty' na caixa de pesquisa do Concrete5 para verificar isso).

De qualquer forma, a melhor maneira de adicionar programaticamente o link às páginas internas é:

<a href="<?=$this->url('page-name');?>"> 
    page name 
</a>

Funciona tanto no host local quanto on -line, com ou sem URLs bonitos.

(Para o nome da página, vá para Dashboard/Full Sitemap/Page-NAME/PROPERTIES/PAGE CATHES E LOCALIZAÇÃO.)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top