Mon fichier htaccess fonctionne sur localhost mais ne fonctionne pas lorsque je le déploie sur l'instance EC2.
J'utilise Macbook et dans le Finder, je ne vois pas le fichier htaccess, je pensais qu'il n'avait peut-être pas été copié dans l'instance EC2 mais je ne pense pas que ce soit le problème parce que lorsque je copie le projet, je peux voir le fichier htaccess dans mon éditeur.
Y a-t-il quelque chose qui active la réécriture de mod dans l'instance linux EC2? Si c'est le cas, je ne l'ai pas fait ou cela permet la réécriture du mod par défaut?
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
J'ai rassemblé des informations provenant de divers postes, alors j'ai pensé mettre en place une réponse.
/etc/httpd/conf/httpd.conf
Sudo vim /etc/httpd/conf/httpd.conf
( Comment modifier le fichier httpd.conf dans Amazon EC2 )DocumentRoot "/var/www/html"
a été répertorié à deux endroits pour moi. J'ai dû changer le AllowOverride None
à AllowOverride All
à ces deux endroits.J'essayais d'apporter les mêmes modifications dans un fichier .htaccess (en supprimant l'index.php des URL dans une application d'allumeur de code). J'espère que ça aide!
Par défaut, EC2 n'a pas .htaccess activé, vous devez modifier votre httpd.config pour le permettre.
Dans/etc/Apache/sites-available/default, changez AllowOverRide = None en AllowOverRide = All.
Lorsque vous utilisez le serveur Apache2
Accédez au répertoire suivant.
cd/etc/Apache2/sites-available
Si vous utilisez la commande LS ici, vous verrez le fichier suivant.
0-default.conf
C'est le fichier avec la configuration Apache par défaut qui est appliqué à vos sites dans le dossier/var/www/html.
Ouvrez ce fichier pour le modifier.
Sudo nano 000-default.conf
Ajoutez les lignes suivantes après la ligne DocumentRoot/var/www/html.
Options FollowSymLinks AllowOverride All Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all
Enregistrez le fichier et redémarrez Apache.
redémarrage du service Sudo Apache2
c'est tout et maintenant votre fichier .htaccess fonctionnera
C'est un processus en trois étapes
Configurez Apache mod_rewrite, exécutez dans le terminal. Réécriture sudo a2enmod
ajoutez le code suivant à/etc/Apache2/sites-available/default
DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory>
3.Redémarrez Apache
/etc/init.d/Apache2 restart
Il y a trois étapes
Configurez Apache mod_rewrite, exécutez dans le terminal. Réécriture sudo a2enmod
Ajoutez ce code dans ce fichier après avoir fermé la balise VirtualHost /etc/Apache2/sites-available/000-default.conf
DocumentRoot/var/www
Options FollowSymLinks
AllowOverride All
Options Index FollowSymLinks MultiViews
AllowOverride All
Ordonnance autoriser, refuser
permettre à tous
Redémarrez le serveur Apache par commande
Sudo service Apache2 restart
Sur l'environnement Linux 1 - cd/etc/Apache2/sites-available
2 - Sudo nano 000-default.conf
et collez ce code:
<Directory "/var/www/html">
Order allow,deny
Allow from all
Options None
AllowOverride All
</Directory>
Cela a fonctionné sur l'instance AWS.