Hostwinds Tutoriales

Resultados de búsqueda para:


Tabla de contenido


¿Cuál es el archivo .htaccess?
Habilitar el archivo .htaccess
Paso 1: Abra el archivo de host virtual
Paso 2: agregue la directiva 'DESKOVERRide All' '?
Paso 3: Guardar archivo
Paso 4: Reiniciar Apache
Creación de un archivo .htaccess
Redirigir una sola URL usando la directiva 'redirigir'
Si desea redirigir una URL a otra URL en el mismo dominio:
Si desea redirigir una URL a una en un dominio diferente:
Redirección de URL a granel utilizando la directiva 'Rewriterule'
Verifique si 'Mod_rewrite está habilitado
Para sistemas basados ​​en Red Hat (Centos, Fedora, RHEL):
Para Sistemas con sede en Debian (Ubunutu, Debian, Linux Mint):
Cómo habilitar 'mod_rewrite'
Para sistemas basados ​​en Red Hat (Centos, Fedora, RHEL):
Para Sistemas con sede en Debian (Ubunutu, Debian, Linux Mint):
Redirigir las URL basadas en un patrón común
Redirigir un dominio completo a un nuevo dominio
Forzar https con la directiva 'rewriterule'
Forzar https en todo el tráfico
Forzar https en un dominio específico
Agregar y eliminar el prefijo 'www'

Cómo crear redirecciones usando el archivo .htaccess

¿Cuál es el archivo .htaccess?
Habilitar el archivo .htaccess
Paso 1: Abra el archivo de host virtual
Paso 2: agregue la directiva 'DESKOVERRide All' '?
Paso 3: Guardar archivo
Paso 4: Reiniciar Apache
Creación de un archivo .htaccess
Redirigir una sola URL usando la directiva 'redirigir'
Si desea redirigir una URL a otra URL en el mismo dominio:
Si desea redirigir una URL a una en un dominio diferente:
Redirección de URL a granel utilizando la directiva 'Rewriterule'
Verifique si 'Mod_rewrite está habilitado
Para sistemas basados ​​en Red Hat (Centos, Fedora, RHEL):
Para Sistemas con sede en Debian (Ubunutu, Debian, Linux Mint):
Cómo habilitar 'mod_rewrite'
Para sistemas basados ​​en Red Hat (Centos, Fedora, RHEL):
Para Sistemas con sede en Debian (Ubunutu, Debian, Linux Mint):
Redirigir las URL basadas en un patrón común
Redirigir un dominio completo a un nuevo dominio
Forzar https con la directiva 'rewriterule'
Forzar https en todo el tráfico
Forzar https en un dominio específico
Agregar y eliminar el prefijo 'www'

¿Cuál es el archivo .htaccess?

El archivo .htaccess es un archivo de configuración utilizado principalmente por los servidores web Apache para controlar varios aspectos del comportamiento del sitio web por directorio.Le permite anular la configuración de todo el servidor y aplicar configuraciones específicas a directorios individuales sin modificar directamente el archivo de configuración del servidor principal.

El archivo .htaccess se destaca como una herramienta notablemente poderosa para administrar varias tareas de sitio web de back -end de manera eficiente.Una de las tareas más comunes es implementar redireccionamientos, donde Puede ejecutar redireccionamientos a nivel de URL individuales, en dominios enteros e incluso en el nivel de protocolo HTTP.

En este tutorial, repasaremos las innumerables opciones.

Habilitar el archivo .htaccess

Habilitar el archivo .htaccess le dice a los servidores web Apache que reconozcan y acepten directivas escritas dentro de él, lo que lo establecerá para anular las configuraciones predeterminadas del servidor a nivel de directorio.

Si tienes un alojamiento compartido Cuenta, su proveedor de servicios de alojamiento ya debería tenerlo habilitado, por lo que todo lo que tiene que hacer es crear un archivo.

Paso 1: Abra el archivo de host virtual

Usando su editor de texto preferido (usaremos nano Para este ejemplo), abra el archivo de configuración de su sitio web con el siguiente comando:

Para sistemas basados ​​en Red Hat (Centos, Fedora, RHEL):

sudo nano /etc/httpd/conf/httpd.conf

Para Sistemas con sede en Debian (Debian, Ubuntu, Linux Mint):

sudo nano /etc/apache2/sites-available/domain_name.conf

El bloque de archivos VirtualHost se verá algo así:

<VirtualHost *:80>
    ServerAdmin webmaster@example.com
    ServerName domain_name
    ServerAlias www.domain_name
    DocumentRoot /var/www/domain_name/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Nota: Dependiendo de cómo se organicen los archivos de su sitio web, el 'Raiz del documento' puede diferenciarse.Hay dos configuraciones comunes:

  • '/var/www/domain_name/public_html' (arriba) indica que los archivos de su sitio web están en un subdirectorio llamado 'public_html ' dentro de 'nombre de dominio'Directorio, una estructura comúnmente utilizada para separar archivos públicos de otros archivos relacionados con el sitio.Habilitar el archivo .htaccess en este directorio solo afectará los archivos dentro de 'public_html'.
  • Ejemplo:
/var/www/domain_name/
├── public_html/
│   ├── index.html
│   ├── about.html
│   └── .htaccess
└── logs/
  • '/var/www/domain_name' indica que todos los archivos de su sitio web se encuentran directamente en el 'nombre de dominio'Directorio.Esta configuración significa que todas las directivas de archivo .htaccess se aplicarán a cada archivo (orientado público o no) dentro de este directorio.
  • Ejemplo:
/var/www/domain_name/
├── index.html
├── about.html
└── .htaccess

Si bien ambos son válidos, es importante estar al tanto de qué archivos del sitio puede o no querer verse afectado por el archivo .htaccess.

Paso 2: agregue la directiva 'DESKOVERRide All' '?

Dentro de Anfitrión virtual Bloque Agregar el siguiente bloque de contenido del directorio:

<VirtualHost *:80>  

<Directory /var/www/domain_name/public_html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

</VirtualHost>

Esta directiva, específicamente 'Permanecer todo'es lo que le permite aplicar directivas .htaccess en todos los archivos del sitio web dentro del directorio dado.

Paso 3: Guardar archivo

Después de agregar el bloque de directorio, guarde y cierre el archivo.En nano, esto se puede hacer presionando CTRL +X, luego Y y presionando INGRESAR.

Paso 4: Reiniciar Apache

Para la habilitación completa del archivo .htaccess, deberá reiniciar Apache:

Para sistemas basados ​​en Red Hat (Centos, Fedora, RHEL):

sudo systemct1 restart httpd

Para Sistemas con sede en Debian (Debian, Ubuntu, Linux Mint):

sudo systemct1 restart apache2

¡Eso es todo!Apache ahora le permitirá usar archivos .htaccess dentro del directorio dado.

Creación de un archivo .htaccess

Con soporte para .htaccess habilitado, ahora podemos crear el archivo .htaccess.

Para crear el archivo .htaccess, debe ir al directorio raíz donde habilitó el archivo .htaccess.Usando su editor de texto preferido (nuevamente, usaremos nano) Ingrese el siguiente comando, reemplazando 'nombre de dominio'Con tu nombre de dominio.

Nota: Eliminar 'public_html'Si no habilita el archivo .htaccess en ese subdirectorio.

sudo nano /var/www/html/domain_name/public_html/.htaccess

Ahora ha creado un archivo .htaccess y puede comenzar a diseñar directivas de redirección.

Redirigir una sola URL usando la directiva 'redirigir'

los 'Redirigir'La directiva es la opción más directa para redireccionamientos simples de 1 a 1.Esta directiva se puede usar para redirigir las URL en el mismo dominio o a un dominio diferente.Las siguientes directivas funcionarán para cualquier código de estado 3xx (301, 302, 307 y 308)

Si desea redirigir una URL a otra URL en el mismo dominio:

Redirect 301 "/original_url_path" "/new_url_path"

Si desea redirigir una URL a una en un dominio diferente:


Redirect 301 "/orignal_url_path" "https://new_domain.com/new_url_path"

Redirección de URL a granel utilizando la directiva 'Rewriterule'

El 'Rewriterule'La directiva le permite agregar reglas adicionales a las redirecciones, como la coincidencia de patrones, mediante el uso de expresiones y condiciones regulares.

Verifique si 'Mod_rewrite está habilitado

Para usar el 'Rewriterule', debemos asegurarnos de que el módulo 'Mod_rewrite' esté habilitado.

Para sistemas basados ​​en Red Hat (Centos, Fedora, RHEL):
httpd -M | grep rewrite
Para Sistemas con sede en Debian (Ubunutu, Debian, Linux Mint):
apache2ctl -M | grep rewrite

Si ve la siguiente salida, el módulo 'mod_rewrite' está habilitado

rewrite_module (shared)

Cómo habilitar 'mod_rewrite'

Para sistemas basados ​​en Red Hat (Centos, Fedora, RHEL):

Paso 1: Abra el archivo de configuración de Apache (generalmente 'httpd.conf' o 'apache2.conf')

sudo nano /etc/httpd/conf/httpd.conf

Paso 2: Asegúrese de que no se comente la siguiente línea (no # al principio).Si es así, simplemente elimine '#'

LoadModule rewrite_module modules/mod_rewrite.so

Paso 3: Reiniciar Apache para aplicar cambios

sudo systemctl restart httpd
Para Sistemas con sede en Debian (Ubunutu, Debian, Linux Mint):

Paso 1: Habilitar el módulo 'mod_rewrite'

sudo a2enmod rewrite

Paso 2: Reiniciar Apache para aplicar cambios

sudo systemctl restart apache2

Redirigir las URL basadas en un patrón común

Si tiene un patrón común en sus URL antiguas, como el mismo subdirectorio (ex. /Blog), puede usar expresiones regulares para que coincidan y redirigirlas:

RewriteEngine On

RewriteRule ^old-section/(.*)$ http://www.example.com/new-section/$1 [R=301,L]

En este ejemplo, cualquier URL que comience con 'Sección antigua/' será redirigido a 'nueva sección/' con el mismo sufijo.

Redirigir un dominio completo a un nuevo dominio

La siguiente directiva redirigirá todo el tráfico de 'old-domain.com' a 'new-domain.com, 'Preservando el camino Uri.

RewriteEngine On

RewriteCond %{HTTP_HOST} ^old-domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.new-domain.com/$1 [R=301,L]

Forzar https con la directiva 'rewriterule'

Cuando "obliga a HTTPS", significa que está redirigiendo cualquier solicitud HTTP entrante de su sitio a la versión HTTPS segura.

Hay un par de formas de forzar HTTPS utilizando la directiva 'Rewriterule':

Forzar https en todo el tráfico

Cuando obliga a HTTPS a "todo el tráfico", le está diciendo al servidor que redirige todas las solicitudes de HTTP entrantes a HTTPS, independientemente del dominio o subdominio.

RewriteEngine On

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Este método de https forzados es ideal para servidores que alojan un solo dominio.

Forzar https en un dominio específico

Cuando obliga a HTTPS en un dominio específico, le está diciendo al servidor que redirige las solicitudes HTTP a HTTPS solo para ese dominio particular (o subdominio).

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(www\.)?specific-domain\.com$ [NC]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Forzar HTTPS con este método es particularmente útil al alojar varios dominios en un solo servidor y solo necesita asegurar un número de selección.

Agregar y eliminar el prefijo 'www'

También puede usar el archivo .htaccess junto con la directiva 'Rewriterule' para redirigir el prefijo 'www'.

Para agregar prefijo 'www':

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]

Para eliminar el prefijo 'www':

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]

Escrito por Hostwinds Team  /  junio 3, 2024