.htaccess mod-rewrite apache httpd.conf

.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!