En casi todas las soluciones de "Cómo activar htaccess", dicen que es necesario editar el archivo / etc / apache2 / sites-available / default. Pero no hay tal archivo en Apache 2.4.7
Leí en alguna parte que el nuevo archivo predeterminado es 000-default.conf. Así que edité esa e intenté agregar la línea:
AllowOverride All
Pero Apache2 no se reinició correctamente y dio un error. De una documentación de apache2, descubrí que AllowOverride solo está permitido en la <Directory>
sección. Luego intenté agregar esto:
<Directory "/var/www">
AllowOverride All
</Directory>
Y esto parece funcionar. Pero no estoy seguro de si debería haber puesto / var / www allí. ¿Es una forma correcta de hacerlo o mi computadora explotará de alguna manera?
apache2
configuration
.htaccess
Despistado
fuente
fuente
Respuestas:
tl; dr
Sí, es la forma correcta.
Pero para ser más semántico : Sí, es la forma correcta de permitir
.htaccess
anular todas las directivas en el/var/www
directorio.Como descubriste,
AllowOverride
solo está permitido en laDirectory
sección.Usando tu ejemplo:
Esto le dice a Apache que todas las configuraciones pueden ser anuladas en
/var/www
y en todos sus subdirectorios (recursivamente).Para un mejor ejemplo, considere que tiene la siguiente configuración en su host virtual:
Y la siguiente estructura de directorios:
Lo que hice aquí, es crear un
.htaccess
en cada subdirectorio del/var/www
directorio.Por lo general, no debería ser así, pero esto es solo por el bien del ejemplo
Al comparar la estructura de directorios con la configuración, significa que todos los
.htaccess
archivos dentro de la/var/www
carpeta y sus subdirectorios, excluyendo el/var/www/uploads
directorio y sus subdirectorios, pueden anular todo tipo de directivas.Sin embargo,
/var/www/uploads
y sus subdirectorios sólo pueden utilizar el.htaccess
archivo para anular lasAllow
,Deny
yOrder
las directivas.Nota: A partir de apache 2.4 (que está disponible por defecto en 13.10+)
Allow
, las directivas ,Deny
yOrder
fueron reemplazadas por una directiva única llamadaRequire
.fuente
Primero habilite reescribir usando este comando:
Luego reinicie apache2:
Luego ve a la
sites-available
carpeta:Edite el archivo nombrado
default
y cámbieloAllowOverride none
aAllowOverride All
. Hay dos líneas donde se debe hacer este cambio.Esto hará que el
.htaccess
trabajo en su servidor VPS.Esto funcionó en un Ubuntu 12.04.5 VPS.
fuente
default
se llama al archivo000-default.conf
y no contiene laAllowOverride None
línea.000-default.conf
y no es posible agregarloAllowOverride None
aquí, si vuelve a cargar apache, dar error.htaccess
, es mejor usarlasAllowOverride FileInfo
. Aunque FileInfo ya incluye un gran conjunto de directivas, aún estaría restringiendo la anulación de muchas directivas.En mi caso, funcionó así:
tuve que agregar las siguientes líneas:
Entonces se ve así:
fuente
Aquí un fragmento de cómo habilitar htaccess en Apache 2.4 sin cambiar la configuración predeterminada:
fuente