J'ai un simple fichier .htaccess qui fonctionne très bien sur la version http du site mais pas quand je vais sur https. Pourquoi?
RewriteEngine on
#This is so if the file exists then use the file
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ %{REQUEST_FILENAME} [L]
#These conditions check if a file or folder exists just for reference
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#if someone adds ".php" to the slug get rid of it
RewriteRule ^(.*)\.php$ $1
#don't add the [R] here because we don't want it to redirect
RewriteRule ^(.*)$ index.php?id=$1 [L,QSA]
la source
/etc/apache2/sites-enabled/default-ssl.conf
(2) Pour être très clair, si vous rencontrez toujours des problèmes, essayezAllowOverride All
plutôt queAllowOverride FileInfo
. Une fois que vous l'avez fait fonctionner, vous pouvez lire lesAllowOveride
documents Apache en détail pour limiter l'accès plus spécifiquement pour maximiser la sécurité. (3) N'oubliez pas que vous devez redémarrer apache pour que les paramètres prennent effet.Serait-il possible que mod_rewrite ne soit pas activé pour le serveur HTTPS ou que le .htaccess ne soit pas utilisé?
Vérifiez les
AllowOveride
autorisations en cours d'utilisation pour le site normal et comparez-les à la version SSL, probablement une différence. Probablement introduit pour améliorer la sécurité, sinon un accident.mod_rewrite
est à côté de l'essentiel, donc tout hébergeur décent devrait aider à résoudre ce problème.la source
"travailler sur apache2 + ubuntu précis"
Un problème similaire s'est produit lors de l'utilisation du framework Slim et de la suppression du fichier index.php requis dans l'url. La réécriture fonctionnait parfaitement pour http mais pour https: elle montrait une URL non trouvée, ce qui signifiait que la réécriture ne fonctionnait pas.
Après quelques hit-n-trial, j'ai trouvé cette solution:
Remplacez AllowOverride None par All . De même sudo vim ssl
la source
J'ai eu un problème similaire, c'est ce qui a fonctionné pour moi.
Dans votre httpd.conf, assurez-vous d'avoir les deux:
ServerName domain.com
ServerAlias www.domain.com
la source