J'ai récemment mis en place un vps avec Digital Ocean pour laisser mon site s'exécuter sur php7 et http2. Tout fonctionne très bien, mais le fichier .htaccess de mon site ne redirige pas comme il se doit. J'ai modifié mon fichier 000-default.conf et mes fichiers Apache2.conf pour permettre à .htaccess de fonctionner!
C'est ce que j'ai dans mon fichier .htaccess
#ExpiresActive On
#ExpiresByType image/gif "now plus 9 years"
#ExpiresByType image/png "now plus 9 years"
#ExpiresByType image/jpeg "now plus 9 years"
#ExpiresByType image/x-icon "now plus 9 years"
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule .* https://example.com [L,R=301]
RewriteCond %{HTTP_Host} !^www\.
RewriteRule .* https://www.example.com [L,R=301]
RewriteBase /
RewiteCond %{THE_REQUEST} ^GET.*index\.php [NC]
RewriteRule (.*?)index\.php/*(.*) /$1$1 [R=301,NE,L]
Sur mon autre hébergement partagé, ce fichier a bien fonctionné et je sais que ce fichier fonctionne, car si je supprime la mise en commentaire de tous les ExpiresByType, il casse mon site, je vais donc probablement les supprimer! De plus, le fichier index.php ne redirige pas. Ai-je oublié quelque chose quelque part?
On m'a dit que ma question n'était pas claire, donc je vais fournir le fichier .conf de mon site.
DirectoryIndex index.php
<LocationMatch "^(.*\.php)$">
ProxyPass fcgi://127.0.0.1:9000/var/www/example.com/public_html
</LocationMatch>
NameVirtualHost *:443
<VirtualHost *:443>
AccessFileName .htaccess
ServerName www.example.com
ServerAlias www.example.com
SSLEngine on
SSLCertificateFile "/etc/letsencrypt/live/example.com/cert.pem"
SSLCertificateKeyFile "/etc/letsencrypt/live/example.com/privkey.pem"
SSLCertificateChainFile "/etc/letsencrypt/live/example.com/chain.pem"
Protocols h2 http/1.1
H2Direct on
ServerAdmin [email protected]
DocumentRoot /var/www/example.com/public_html
ErrorLog ${Apache_LOG_DIR}/error.log
CustomLog ${Apache_LOG_DIR}/access.log combined
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Je peux également confirmer que la réécriture Sudo a2enmod est activée. Espérons que cela arrange les choses.
J'ai finalement compris et c'était vraiment simple. Au lieu de modifier les hôtes virtuels de mes sites, je modifie mon fichier Apache2.conf situé dans /etc/Apache2/Apache2.conf en tant que tel.
<Directory /var/www>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Il m'a fallu un peu de temps pour y arriver, mais c'est simple quand on sait comment! Merci pour votre aide