2009-11-08 16 views
1

J'essaie de développer un CMS de base avec CodeIgniter pour mon propre usage sur des projets mais je suis resté coincé dessus. En outre, je suis très nouveau à CI, mais j'ai quelques années avec ZF et OOP PHP.CodeIgniter Backend Frontend .htaccess routeur

tout d'abord laissez-moi vous montrer ma structure de fichier:

  • index.php (bootstrap frontend)
  • backend.php (bootstrap back-end)
  • .htaccess
  • système
  • (core CI)
    • demande
      • back-end
        • [...] MVC fichiers et dossiers associés (configuration, contrôleurs, modèles, vues ...)
      • frontend
        • [...] MVC fichiers connexes et dossiers (configuration, contrôleurs, modèles, vues ...)
    • CodeIgniter
    • [...] (cache, base de données, échafaudages ...)

Ok. Je peux utiliser le chemin d'index.php ou backend.php avec un .htaccess, mais je ne peux pas le faire fonctionner avec les deux. Voici le code .htaccess:

RewriteEngine on 
RewriteBase/

# Hide the application and system directories by redirecting the request to index.php (and throwing a 404 error) 
RewriteRule ^(application|system|\.svn) index.php/$1 [L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule ^(.*)$ index.php/$1 [QSA,L] 

Eh bien, ce que je dois est le suivant:

  • www.domain.com/backend/controller/action/parameters (routage backend.php)
  • www.domain.com/controller/action/parameters (index.php routing)

Espérons que j'ai bien expliqué.

Quelqu'un peut-il vous aider, s'il vous plaît? :)

Cordialement.

Répondre

1

Après un peu plus la recherche, j'ai trouvé un very nice article documenter comment faire ce dont j'ai besoin.Il explique également les 3 façons de backend/frontend dans CI:

  • applications distinctes
  • sous-répertoires
  • HMVC (modèle hiérarchique View Controller)

HMVC correspond parfaitement à mes besoins, mais Je vais essayer d'abord les sous-répertoires. :)

0

Fondamentalement, vous voulez exécuter deux applications CodeIgniter côte à côte, une dans la racine et une dans backend/. Il y a quelques façons de le faire, mais est le plus simple d'ajouter une règle de réécriture pour votre deuxième instance (suppression de l'L ast drapeau):

RewriteRule ^backend/(.*)$ /backend/index.php/$1 [QSA] 
RewriteRule ^(.*)$ index.php/$1 [QSA,L] 
+0

Faire de cette façon, si je l'appelle "http: // localhost/ci_cms/back-end" je reçois une réponse 404 sur cette url "/index.php/backend". Il doit pointer vers le backend.php lui-même, comme le reste de la demande va à index.php. est mon/système/application/structure arborescente correcte :) –

+0

L'URI pour le back-end serait similaire à toute voie de CI, sauf/backend/en elle: 'site.com/backend/itinéraire/parameter'. –

+0

En ce qui concerne la structure, pour que cette suggestion fonctionne, vous auriez besoin de 2 copies de CI (ce que je ne fais pas normalement, mais qui ont été prototypées dans le passé), une copie dans chaque racine. L'approche HMVC est ce que j'ai fini par utiliser dans la plupart de mes projets, car le maintien d'une installation CI est beaucoup plus simple. –