Tengo un archivo .htaccess simple que funciona muy bien en la versión http del sitio, pero no cuando voy a https. ¿Por qué?
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]
fuente
/etc/apache2/sites-enabled/default-ssl.conf
(2) Para ser súper claro, si aún tiene problemas, intente enAllowOverride All
lugar de hacerloAllowOverride FileInfo
. Una vez que lo haga funcionar, puede leer losAllowOveride
documentos de Apache en detalle para limitar el acceso más específicamente y maximizar la seguridad. (3) Recuerde que debe reiniciar Apache para que la configuración surta efecto.¿Podría ser posible que mod_rewrite no esté habilitado para el servidor HTTPS o que .htaccess no se esté utilizando?
Verifique los
AllowOveride
permisos en uso para el sitio normal y compárelos con la versión SSL, probablemente una discrepancia. Probablemente introducido para mejorar la seguridad, si no un accidente.mod_rewrite
Sin embargo, es casi esencial, por lo que cualquier proveedor de alojamiento decente debería ayudar a resolver esto.fuente
"trabajando en apache2 + ubuntu precisa"
Me ocurrió un problema similar mientras usaba Slim Framework y trataba de eliminar el index.php requerido en la url. ReWrite funcionó perfectamente para http pero para https: mostraba url no encontrada, lo que significaba que reWrite no funcionaba.
Después de un hit-n-trial, se me ocurrió esta solución:
Cambie AllowOverride None a All . Del mismo modo sudo vim ssl
fuente
Tuve un problema similar, esto es lo que funcionó para mí.
En su httpd.conf, asegúrese de tener ambos:
ServerName domain.com
ServerAlias www.dominio.com
fuente