.htaccess: RewriteEngine no permitido aquí
mod-rewrite apache (7)
Cargué .htaccess en el servidor y recibí un Error 500 (Error interno del servidor) .
Y en el registro de errores tuve el siguiente error:
... /. htaccess: RewriteEngine no está permitido aquí
Pero mod_rewrite.so
está habilitado.
Entonces, ¿necesito cambiar
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
a
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
en el archivo /etc/httpd/conf/httpd.conf ?
O podría ser algo más? El archivo .htaccess debería estar bien, porque funciona perfectamente bien en mi servidor local. Simplemente no quiero arruinar nada.
Aquí hay parte de mi archivo .htaccess:
Options All -Indexes
Options +FollowSymLinks
RewriteEngine On
Además, solo asegúrate de que estás editando el archivo de configuración correcto. Creé un archivo en /etc/apache2/users/USERNAME.conf pero estaba editando /etc/apache2/httpd.conf.
Eliminar el archivo USERNAME.conf funcionó.
Digamos que su DOCUMENT_ROOT es /home/foo/web
luego tiene esta configuración en su archivo httpd.conf:
<Directory "/home/foo/web">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
Esto debería ocuparse de RewriteEngine is not allowed
error que está recibiendo.
En httpd versión 2.4 (2.4.3 y 2.4.4), eche un vistazo a /etc/httpd/conf.d/wordpress.conf. Hay una entrada para: ....
Cambiar: "Permitir opciones de omisión" a "Permitir omitir todo"
en wordpress.conf también además de cambiar httpd.conf. Reinicie el servidor http antes de que los cambios surtan efecto.
Intenta cambiar el archivo username.conf en Mac en /etc/apache2/users/username.conf
para
<Directory "/Users/akyoo/Sites/">
AllowOverride All
Options Indexes MultiViews FollowSymLinks
Require all granted
</Directory>
Mi archivo .htaccess
ve así
#Allow from all
Options +FollowSymLinks
RewriteEngine on
RewriteCond $1 !^(index/.php|resources|robots/.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
Esto funciona bien para mi. Solución para usuarios de Ubuntu
Solo una idea, esto me pasó a mí, y he perdido mucho tiempo tratando de resolverlo.
Si tiene un directorio como d:/web/my-sites/some-site/
Y coloca el .htaccess
en d:/web/my-sites/some-site/.htaccess
(donde se supone que debe estar).
Si tiene CUALQUIER archivo .htaccess
antes de este directorio, Apache lee esos archivos y bloquea la ejecución de la ruta completa, produciendo un error interno del servidor.
IE: tienes d:/web/my-sites/.htaccess
configuración mínima para que su .htaccess funcione:
AllowOverride FileInfo Options
Permitir que toda la configuración funcione también:
AllowOverride All
podrías usar algo como esto en tu archivo .htaccess:
RewriteEngine on
RewriteCond $1 !^(index/.php|html|test)
RewriteRule ^(.*)$ /index.php/$1 [L]
¡Este código simplemente significa que todo lo que no apunte a index.php o html o test debe dirigirse a index.php!
Espero que esto sea útil!