apache - que - Cómo establecer AllowOverride all
require all granted (9)
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 utilices allowoverride all si otros usuarios tienen acceso para escribir .htaccess, en cambio usa allowoveride para permitir ciertos módulos.
Como AllowOverride AuthConfig mod_rewrite
lugar de
AllowOverride All
Porque un módulo como mod_mime puede representar los archivos del lado del servidor como texto sin formato.
Quiero establecer AllowOverride all
Pero no sé cómo hacerlo. He encontrado el siguiente código buscando en google y pegándolo en .htaccess
<Directory>
AllowOverride All
</Directory>
Pero después de pegarlo comencé a recibir "Internal Server Error"
¿Puede alguien ayudarme a dónde poner este código O cómo hacerlo?
Creo que desea configurarlo en su archivo httpd.conf
lugar del archivo .htaccess
.
No estoy seguro de qué sistema operativo utilizas, pero este enlace para Ubuntu podría darte algunos consejos sobre qué hacer.
https://help.ubuntu.com/community/EnablingUseOfApacheHtaccessFiles
El objetivo principal de AllowOverride
es que el administrador de los principales archivos de configuración 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 las aplicaciones.
Si no eres el administrador del servidor, dependes del Nivel AllowOverride que te permiten estos administradores. Para que puedan evitar que modifiques algunas configuraciones de seguridad importantes;
Si usted es el administrador de configuración maestro de apache, siempre debe usar AllowOverride None
y transferir todos los ejemplos de google_based que encuentre, en función de los archivos .htaccess a las secciones del Directory
en los archivos de configuración principal. Como contenido .htaccess para un archivo .htaccess
en el directorio /my/path/to/a/directory
es lo mismo que una instrucción <Directory /my/path/to/a/directory>
, excepto que la dinámica .htaccess
por HTTP la alteración de la configuración de la solicitud es algo que ralentiza su servidor web. Siempre prefiera una configuración estática sin comprobaciones de .htaccess
(y también evitará los ataques de seguridad mediante las modificaciones de .htaccess
).
Por cierto, en su ejemplo usa <Directory>
y esto siempre será incorrecto, las instrucciones de 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 .htaccess
ya que .htaccess
es como una instrucción de directorio pero en un archivo presente en este directorio. Por supuesto, no puede modificar AllowOverride
en .htaccess
ya que esta instrucción está administrando el nivel de seguridad de los archivos .htaccess
.
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>
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>
entonces,
sudo service apache2 restart
Es posible que también necesite hacer sudo a2enmod rewrite
para habilitar la reescritura del módulo.
Si está utilizando Linux, puede editar el código en el directorio de
/etc/httpd/conf/httpd.conf
Ahora aquí bien la línea de código un poco 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 simplemente trata de encontrar el archivo de httpd.conf y editarlo.
También encuentro este problema, y encontré la solución como 2 pasos a continuación: 1. En la carpeta habilitada para sitios de apache2, edite en Elemento de directorio estableciendo "Permitir omitir todo" (debe ser "todo" no "ninguno") 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
your_severpath/apache_ver/conf/
Abra el archivo httpd.conf
en 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, vaya a <Directory />
y cambiar a:
<Directory />
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
Luego reinicia tu servidor local.
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. Principalmente contiene 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 la configuración del host virtual .
En tal caso, vhosts.d/*.conf
debe editarse