2009-09-21 10 views
0

Si vous dites utiliser le populaire:Gestion des requêtes 3xx/4xx dans un framework PHP MVC?

RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f 
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php?$1 [L,QSA] 

Et vous essayez de faire de votre framework web mvc poignée 404 de, si vous ne trouvez pas une vue correspondante pour un URI spécifié voulez-vous simplement envoyer manuellement 404 en-têtes http dans l'application PHP lui-même, non? Est-ce ainsi que cela se fait dans Zend/Kohana et d'autres frameworks?

Une autre question, disons que vous avez réécrit un site entier et que vous voulez configurer des 301. Feriez-vous cela à l'endroit où vous configurez vos routes (style regex comme urls.py dans Django) ou dans la directive Virtualhost?

Essentiellement, devrais-je modifier les RewriteRules dans VirtualHost si ma structure Web gère le routage?

Répondre

1

Sur 404, d'une manière générale, oui.

En ce qui concerne la redirection permanente, je suppose que cela dépend du contexte. Si ma solution de routage permettait de le faire de manière sensée, j'irais probablement à moins que je ne m'attendais à rencontrer de gros problèmes de mise à l'échelle. Cela signifiait que, si je trafiquais beaucoup de trafic, et que j'avais beaucoup de contenu statique à servir (mais pas si énorme que j'utilisais autre chose qu'apache comme serveur web), je pourrais finir par utiliser php sous fcgi pour garder Les processus apache sont fins (et utilisent un meilleur MPM que prefork). Dans ce genre de monde, je finirais probablement par court-circuiter les URL et demander au serveur Web de faire la redirection.

Mais même dans ce genre de cas, il n'y a aucune raison de ne pas l'avoir fait dans votre infrastructure de routage en premier. De cette façon, si une requête passe, les choses fonctionnent encore, même si elles ralentissent.

Questions connexes