Hostwinds Tutoriales
Resultados de búsqueda para:
Tabla de contenido
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 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.
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/
│ ├── index.html
│ ├── about.html
│ └── .htaccess
└── logs/
/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.
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.
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.
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.
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.
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)
Redirect 301 "/original_url_path" "/new_url_path"
Redirect 301 "/orignal_url_path" "https://new_domain.com/new_url_path"
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.
Para usar el 'Rewriterule', debemos asegurarnos de que el módulo 'Mod_rewrite' esté habilitado.
httpd -M | grep rewrite
apache2ctl -M | grep rewrite
Si ve la siguiente salida, el módulo 'mod_rewrite' está habilitado
rewrite_module (shared)
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
Paso 1: Habilitar el módulo 'mod_rewrite'
sudo a2enmod rewrite
Paso 2: Reiniciar Apache para aplicar cambios
sudo systemctl restart apache2
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.
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]
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':
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.
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.
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