
Cambiamos de hosting, siendo de un servidor normal, a un servidor VPS. En este servidor VPS el funcionamiento es normal, sin embargo .htaccess
el 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
.htaccess
El uso en Apache httpd está controlado por la AllowOverride
opción. Aunque la mayoría de los proveedores de alojamiento compartido habilitan todas .htaccess
las funciones para los clientes, en realidad esdeshabilitado por defectoen Apache httpd con configuración estándar.
Otros servidores web como Nginx no son compatibles .htaccess
en 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 .htaccess
archivos que son 100% elementos exclusivos de Apache.
Comouser1686 afirma en su respuesta, su proveedor de alojamiento debe configurarse AllowOverride
para All
que .htaccess
funcione. Y sí, en una instalación predeterminada de Apache AllowOverride
no está configurada All
a pesar de que casi el 99% de los servidores web y sitios web de Apache deben .htaccess
configurarse para funcionar. Por ejemplo, Wordpress y Drupal (dos de los sistemas CMS más populares que existen) no funcionarán en absoluto sin .htaccess
configurarlos y ejecutarlos.
Esta, por ejemplo, es una directiva que se puede configurar en la parte inferior del /etc/httpd/conf/httpd.conf
archivo predeterminado para permitir .htaccess
trabajar 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.conf
pero 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.conf
está cargado en /etc/httpd/conf.d/
.
Pero, en general, es AllowOverride All
necesario configurarlo para que .htaccess
funcione.