2009-11-10 7 views
1

Mes URL backend ressemblent à ceci:Comment nettoyer les routes d'administration Symfony?

mysite.com/backend.php/blog 

Je voudrais changer à:

mysite.com/backend/blog 

Techniquement, cela ne se limite pas aux applications d'administration, comme Symfony accorde chaque application deux contrôleurs avant scripts. Mais je déteste avoir le nom du script dans les URL et en tant que tel, je voudrais le changer. Est-ce possible?

Merci d'avance.

Modifier

@codecowboy - Je l'ai résoudre ce problème en créant un répertoire 'back-end' dans le répertoire web. J'ai ensuite copié le fichier .htaccess que symfony met dans le web, et j'ai déplacé les contrôleurs frontaux backend.php et backend_dev.php vers/backend et les ai renommés index.php et index_dev.php. Ensuite, dans chaque contrôleur frontal, je dis à PHP de regarder un répertoire plus haut pour la classe config du projet. Cela fait un moment que je fais ça et ça répond parfaitement à mes besoins. En fait, j'ai tout enveloppé dans une tâche afin que la mise en place d'une nouvelle application d'administration est un processus en une étape.

+0

Avez-vous résolu ceci? – codecowboy

Répondre

2

Vous pouvez ajouter

#I'm no regular expression expert or mod_rewrite expert, this line probably has some bugs 
RewriteRule ^backend(.*)$ backend.php [QSA,L] 

à votre fichier .htaccess juste avant

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

et qui permet de résoudre 1/2 de votre problème. Tout ce qui est envoyé à yoursite.com/backend/xxx sera routé via backend.php. L'autre problème que vous obtenez est avec le routage interne de symfony. Il interprétera votresite.com/backend/xxx comme une requête pour le module "backend" et l'action "xxx". Je suis sûr que ce n'est pas trop difficile à résoudre. Bonne chance!

Questions connexes