J'ai écrit plusieurs applications Web MVC mais jamais auparavant en PHP, et j'essaie de trouver la meilleure façon de travailler avec Zend Framework v1.9.5.Que dois-je utiliser .htaccess dans l'application Zend Framework 1.9.5?
Je ne comprends pas le rôle de .htaccess dans une application Zend Framework 1.9.5. J'ai consulté de nombreux tutoriels, livres et questions sur Zend Framework (mais la plupart d'entre eux sont pour la version 1.8 au plus récent) et ils parlent tous du rôle central du fichier .htaccess. Je comprends que .htaccess peut être utilisé pour supporter les hôtes virtuels, la réécriture d'URL, et pour permettre à Apache de servir des fichiers statiques sans passer par index.php mais je ne suis pas sûr que ce soit pratique courante ou encore nécessaire dans v1.9.5.
Actuellement, j'ai écrit quelques applications assez simples (HTML, CSS, jQuery) Zend Framework et créé des hôtes virtuels Apache pour eux dans un environnement de test Ubuntu Server 9.10. Je n'ai utilisé aucun fichier .htaccess et les applications semblent fonctionner correctement.
Voici ce que je l'ai fait jusqu'à présent:
J'ai créé mes applications en utilisant Eclipse/PDT et l'outil de zf.sh. J'ai ajouté les répertoires css, images et js au répertoire public que 'zf create project' a produit. Ces applications fonctionnent correctement sur mon installation MAMP locale.
Sur le serveur, j'ai installé le Zend Framework dans /usr/local/Zend/share/ZendFramework-1.9.5 et ajouté /usr/local/Zend/share/ZendFramework-1.9.5/library à 'include_path' dans php.ini. J'ai copié les applications dans les répertoires du serveur/home/myadmin/public_html/domain [12]/com.
J'ai créé des hôtes virtuels en ajoutant des entrées dans le répertoire de sites disponibles Apache, comme indiqué dans Slicehost Virtual Host Setup. J'affecte DirectoryIndex = index.php et DocumentRoot =/home/myadmin/public_html/domaine [12]/com/public. Les deux applications semblent fonctionner correctement.
Dois-je utiliser des fichiers .htaccess? Pour quoi?
*** EDIT - My Solution
Basé sur le lien de Richard, je me suis déplacé les déclarations de ré-écriture qui vivent habituellement dans .htaccess dans ma définition d'hôte virtuel, et maintenant mes applications ne pas utiliser un fichier .htaccess. Mon domain1.com fichier hôte virtuel ressemble:
<VirtualHost *:80>
# Define admin email, server name, and any aliases
ServerAdmin [email protected]
ServerName domain1.com
ServerAlias www.domain1.com
# Only serve files from inside this directory
DocumentRoot /home/myadmin/public_html/domain1.com/public
# Directly serve any requested files that exist in DocumentRoot;
# otherwise redirect the request to the index.php script
RewriteEngine off
<Location />
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /index.php [NC,L]
</Location>
# Set up log file locations
LogLevel warn
ErrorLog /home/myadmin/public_html/domain1.com/data/logs/error.log
CustomLog /home/myadmin/public_html/domain1.com/data/logs/access.log combined
</VirtualHost>
Réponse précise avec deux liens très utiles. Merci. – keithm