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
.htaccessanular todas las directivas en el/var/wwwdirectorio.Como descubriste,
AllowOverridesolo está permitido en laDirectorysección.Usando tu ejemplo:
Esto le dice a Apache que todas las configuraciones pueden ser anuladas en
/var/wwwy 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
.htaccessen cada subdirectorio del/var/wwwdirectorio.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
.htaccessarchivos dentro de la/var/wwwcarpeta y sus subdirectorios, excluyendo el/var/www/uploadsdirectorio y sus subdirectorios, pueden anular todo tipo de directivas.Sin embargo,
/var/www/uploadsy sus subdirectorios sólo pueden utilizar el.htaccessarchivo para anular lasAllow,DenyyOrderlas directivas.Nota: A partir de apache 2.4 (que está disponible por defecto en 13.10+)
Allow, las directivas ,DenyyOrderfueron reemplazadas por una directiva única llamadaRequire.fuente
Primero habilite reescribir usando este comando:
Luego reinicie apache2:
Luego ve a la
sites-availablecarpeta:Edite el archivo nombrado
defaulty cámbieloAllowOverride noneaAllowOverride All. Hay dos líneas donde se debe hacer este cambio.Esto hará que el
.htaccesstrabajo en su servidor VPS.Esto funcionó en un Ubuntu 12.04.5 VPS.
fuente
defaultse llama al archivo000-default.confy no contiene laAllowOverride Nonelínea.000-default.confy no es posible agregarloAllowOverride Noneaquí, 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