Apache .htaccess no funciona en un nuevo VPS

Apache .htaccess no funciona en un nuevo VPS

Cambiamos de hosting, siendo de un servidor normal, a un servidor VPS. En este servidor VPS el funcionamiento es normal, sin embargo .htaccessel VPS no ejecuta ni lee el archivo.

Incluso siendo tareas sencillas, como una redirección 301 como por ejemplo el código: ( Redirect 301 /url.html domain.com/urlnova.html).

Pero cuando lo probamos en el servidor apache local (XAMPP), funciona con normalidad, y también en el hosting anterior.

Creamos el archivo desde cero y todavía no funciona. Hablamos con el soporte de alojamiento VPS, en este caso Hostinger, pero no pudieron ayudar.

¿Hay alguna forma de habilitarlo .htaccess?

Respuesta1

.htaccessEl uso en Apache httpd está controlado por la AllowOverrideopción. Aunque la mayoría de los proveedores de alojamiento compartido habilitan todas .htaccesslas funciones para los clientes, en realidad esdeshabilitado por defectoen Apache httpd con configuración estándar.

Otros servidores web como Nginx no son compatibles .htaccessen absoluto.

Respuesta2

Antes que nada, averigüe si Apache es realmente el servidor web que se ejecuta en su nuevo VPS. Por lo que sabes, Nginx se ejecuta en el servidor, ya que muchos proveedores de hosting consideran que Apache y Nginx son servidores web similares cuando no lo son. Especialmente en el caso de .htaccessarchivos que son 100% elementos exclusivos de Apache.

Comouser1686 afirma en su respuesta, su proveedor de alojamiento debe configurarse AllowOverridepara Allque .htaccessfuncione. Y sí, en una instalación predeterminada de Apache AllowOverrideno está configurada Alla pesar de que casi el 99% de los servidores web y sitios web de Apache deben .htaccessconfigurarse para funcionar. Por ejemplo, Wordpress y Drupal (dos de los sistemas CMS más populares que existen) no funcionarán en absoluto sin .htaccessconfigurarlos y ejecutarlos.

Esta, por ejemplo, es una directiva que se puede configurar en la parte inferior del /etc/httpd/conf/httpd.confarchivo predeterminado para permitir .htaccesstrabajar en cualquier directorio en formato /var/www/html.

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

También se puede configurar en un archivo de configuración local de Apache en una ruta como esta:

/etc/httpd/conf.d/zzzz_local.conf

Solía ​​agregar cosas así en la parte inferior, /etc/httpd/conf/httpd.confpero hoy en día personalmente lo encuentro más limpio para configurarlo en los archivos de configuración que se cargan.despuésel principal httpd.confestá cargado en /etc/httpd/conf.d/.

Pero, en general, es AllowOverride Allnecesario configurarlo para que .htaccessfuncione.

información relacionada