Cómo configurar AllowOverride all


161

Quiero configurar el AllowOverride allPero no sé cómo hacerlo. He encontrado el siguiente código al buscar en google y pegarlo en .htaccess:

<Directory>
        AllowOverride All
</Directory>

Pero después de pegarlo comencé a recibir "Internal Server Error"

¿Alguien puede guiarme dónde poner este código o cómo hacerlo?


3
La <Directory>directiva requiere un argumento de ruta.
FKEinternet

Respuestas:


317

En caso de que esté en Ubuntu, edite el archivo /etc/apache2/apache2.conf(aquí tenemos un ejemplo de /var/www):

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

y cambiarlo a;

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

luego,

sudo service apache2 restart

Es posible que también deba hacerlo sudo a2enmod rewritepara habilitar la reescritura del módulo.


55
También necesitaba usar sudo a2enmod rewrite, luego funcionó. En Ubuntu 14.04 LTS. Espero que sea útil para alguien.
Jonauz

2
Extraño ... cuando hago esto me sale el error interno del servidor. ¿Esto indica un error en el archivo .htaccess ubicado en /var/www/.htaccess? Al girar apache2, conf de nuevo a AllowOverride None corrige el error pero no permite reescrituras de URL.
o_O

En Ubuntu 12.04. Encontré este archivo en / etc / apache2 / sites-available / default path
عثمان غني

¿Cómo puedo anular esto desde un archivo separado? Puedo ver que hay un IncludeOptional conf-enabled/*.confen la última línea de mi apache2.confarchivo. Pero parece que apache2.confse prioriza en su lugar.
JohnnyQ

Esto hace la magia por mí. Después de actualizar el servidor Debian de mi compañía de Wheezy a Jessie, todo en Apache dejó de funcionar y después de agregar esto, todo comenzó a funcionar nuevamente.
periket2000

51

El objetivo principal de AllowOverridees que el administrador de los archivos de configuración principales de apache (el que se encuentra en / etc / apache2 / principalmente) decida qué parte de la configuración puede ser modificada dinámicamente por ruta por aplicación.

Si no eres el administrador del servidor, dependes del nivel AllowOverride que estos administradores te permiten. Para que puedan evitar que modifique algunas configuraciones de seguridad importantes;

Si usted es el administrador principal de configuración de apache, siempre debe usar AllowOverride Noney transferir todos los ejemplos basados ​​en google_ que encuentre, basados ​​en archivos .htaccess a Directorysecciones en los archivos de configuración principales. Como un contenido .htaccess para un .htaccessarchivo /my/path/to/a/directoryes lo mismo que una <Directory /my/path/to/a/directory>instrucción, excepto que la .htaccessalteración dinámica de la configuración por solicitud HTTP es algo que ralentiza su servidor web. Siempre prefiera una configuración estática sin .htaccesscontroles (y también evitará ataques de seguridad por .htaccessalteraciones).

Por cierto, en el ejemplo que usa <Directory>y esto siempre será incorrecto, las instrucciones del directorio siempre contienen una ruta, como <Directory />o <Directory C:>o <Directory /my/path/to/a/directory>. Y, por supuesto, esto no se puede poner en un .htaccesscomo .htaccesses como una instrucción de directorio sino en un archivo presente en este directorio. Por supuesto que no se puede alterar AllowOverrideen una .htaccesscomo esta instrucción está gestionando el nivel de seguridad de los .htaccessarchivos.


17

Ir a your_severpath/apache_ver/conf/ Abrir el archivo httpd.confen el Bloc de notas.

Encuentra esta línea:

#LoadModule vhost_alias_module modules / mod_vhost_alias.so

Eliminar el símbolo hash:

LoadModule vhost_alias_module modules / mod_vhost_alias.so

Luego ve a <Directory />

y cambiar a:

<Directory />
    Options FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

Luego reinicie su servidor local.


¡Trabajo hecho! Ty señor!
James Walker

66
NB Order allow,denyy Allow from allson para Apache 2.2 y anteriores. Con Apache 2.4, esas dos líneas se reemplazan por Require all grantedcomo se muestra en otras respuestas.
FKEinternet

13

En Linux, para relajar el acceso a la raíz del documento, debe editar el siguiente archivo:

/etc/httpd/conf/httpd.conf

Y dependiendo del nivel de directorio al que desee relajar el acceso, debe cambiar la directiva

AllowOverride None

a

AllowOverride All

Por lo tanto, suponiendo que desea permitir el acceso a los archivos en el directorio / var / www / html, debe cambiar las siguientes líneas de:

<Directory "/var/www/html">
 AllowOverride None
</Directory>

a

<Directory "/var/www/html">
 AllowOverride All
</Directory>

8
y reinicie el servidor después
Daniel

Después de cientos de comprobaciones dobles de mis .htacces, ¡esta fue la solución! Muchas gracias. Pensé que "todos" es el valor predeterminado de la configuración de apache.
Matthias Kleine

Además, mencionar Linux en su respuesta no es bueno. Aunque esto es viejo, solo quiero aclarar que lo que estás diciendo es para distribuciones basadas en Redhat
Chi.CJRajeeva Lochana

11

Si está utilizando Linux, puede editar el código en el directorio de

/etc/httpd/conf/httpd.conf

ahora, aquí encuentra la línea de código como

# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#
    AllowOverride None
#
# Controls who can get stuff from this server.
#
    Order allow,deny
    Allow from all

</Directory>

Cambie AllowOveride None a AllowOveride All

Ahora ahora puede establecer cualquier tipo de regla en su archivo .httacess dentro de sus directorios si cualquier otro sistema operativo solo trata de encontrar el archivo httpd.conf y editarlo.


A partir de 2015Nov18 1539 PST, cuando busco en Google 'allowoverride', veo un cuadro encima de los resultados de búsqueda que muestra esto:now here fine the code line kinda like # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride None # # Controls who can get stuff from this server. #Sep 11, 2013 apache - How to Set AllowOverride all - Stack Overflow stackoverflow.com/questions/18740419/how-to-set-allowoverride-all
boot13


5

Como otros usuarios explicaron aquí sobre el uso de la directiva allowoveride, que se usa para dar permiso al uso de .htaccess. Una cosa que quiero señalar es que nunca use allowoverride todo si otros usuarios tienen acceso para escribir .htaccess en su lugar use allowoveride como para permitir ciertos módulos.

Como en AllowOverride AuthConfig mod_rewritelugar de

AllowOverride All

Porque un módulo como mod_mime puede representar los archivos del lado del servidor como texto sin formato.


1
¡¡GRACIAS!! Esto es exactamente lo que estaba buscando. Quiero redirigir windwalker.com.au a windwanderer.com.au, por lo que necesitaba permitir esta directiva en un archivo .htaccess y NADA MÁS. Poner AllowOverride ALL siempre reduce significativamente la seguridad de mis servidores.
Jesse the Wind Wanderer

1

También encuentro este problema, y ​​encontré la solución en el paso 2 a continuación: 1. En la carpeta de apache2 habilitada para sitios, edita en el elemento Directorio configurando "AllowOverride all" (debe ser "all" no "none") 2. En el proyecto kohana en la carpeta www, cambie el nombre de "example.htaccess" a ".htaccess"

Lo hice en ubuntu. Espero que te ayude.


0

SuSE Linux Enterprise Server

Asegúrese de editar el archivo correcto https://www.suse.com/documentation/sles11/book_sle_admin/data/sec_apache2_configuration.html

httpd.conf

El archivo de configuración principal del servidor Apache. Evita cambiar este archivo. Contiene principalmente declaraciones de inclusión y configuraciones globales. Sobrescriba la configuración global en los archivos de configuración pertinentes enumerados aquí. Cambie la configuración específica del host (como la raíz del documento) en su configuración de host virtual .

En tal caso vhosts.d/*.confdebe ser editado


0

Además, esas respuestas correctas votadas a veces se pueden ver el mismo error debido a configuraciones diferentes y no coincidentes por SSLparte de las configuraciones del servidor web . (Obviamente cuando no usa el .htaccessarchivo).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.