El archivo .htaccess es un archivo de configuración a nivel de directorio, compatible con el servidor web Apache. Permite modificar la configuración del servidor web (como habilitar o deshabilitar funciones) para una cuenta específica, sin afectar la configuración global del servidor.
Este archivo aplica sus configuraciones a todo el directorio donde se encuentra, incluyendo todos los archivos y subdirectorios dentro de ese directorio. Cualquier cambio realizado en el archivo .htaccess se aplica al instante, sin necesidad de reiniciar el servidor.
Para encontrar el archivo .htaccess:
1. Ve a tu cuenta de Spaceship >> elige Hosting Manager en Launchpad >> Administrar junto a un plan de hosting >> Archivos y almacenamiento >> Administrar archivos cerca del nombre del sitio web.
2. Serás redirigido a la carpeta raíz del dominio.
3. Si necesitas editar el archivo .htaccess del dominio, localiza el archivo .htaccess en la carpeta raíz del dominio, haz clic derecho sobre él y elige la opción Editar :

NOTA: Asegúrate de que "Mostrar archivos ocultos (dotfiles)" esté habilitado en el menú Configuración:

4. Si no hay un archivo .htaccess en el Administrador de archivos, puedes crear uno nuevo con el botón + Archivo:

5. Ya puedes añadir tus propias reglas de configuración y guardarlas.
Este método te permite bloquear usuarios según su dirección IP o dominio. Es especialmente útil para restringir el acceso a visitantes no deseados o para limitar el acceso a secciones específicas de tu sitio web, como el área de administración, solo al propietario.
Para implementar reglas de bloqueo específicas, crea un archivo .htaccess con lo siguiente:
(Para permitir el acceso a todos los demás y bloquear usuarios con una dirección IP X.X.X.X)
<RequireAll>
Require all granted
Require not ip X.X.X.X
</RequireAll>
(Para bloquear a todos los visitantes excepto a las IPs específicas X.X.X.X y Y.Y.Y.Y)
<RequireAll>
Require all denied
Require ip X.X.X.X
Require ip Y.Y.Y.Y
</RequireAll>
NOTA: No utilices las directivas obsoletas Allow, Deny y Order con la nueva directiva Require .
Mod_Rewrite define cómo se presentan las páginas web y las URLs a los visitantes.
Por defecto, Mod_Rewrite asigna una URL a una ruta correspondiente en el sistema de archivos. Sin embargo, también puede redirigir una URL a otra.
Antes de configurar una redirección, es importante elegir el tipo de redirección que mejor se adapte a tus necesidades:
Redirección permanente (301): Esta redirección envía un código de estado 301, indicando que la página se ha movido permanentemente. Se almacena en caché en el navegador, indicando a los motores de búsqueda y agentes de usuario que actualicen la URL en sus bases de datos. Este es el tipo de redirección más común.
Redirección temporal (302): Esta redirección envía un código de estado 302, indicando que el traslado es temporal. El navegador no almacenará en caché esta redirección y, aunque redirigirá a los visitantes y motores de búsqueda, la página original seguirá siendo indexada. Este tipo de redirección se recomienda a menos que estés seguro de que la URL no cambiará en el futuro.
A continuación, se muestra una lista de algunas de las redirecciones más comunes y útiles que se pueden configurar a través del archivo .htaccess:
Redirección permanente de example1.com a example2.com
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example1\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example1\.com$
RewriteRule ^(.*)$ "http\:\/\/example2\.com/$1" [R=301,L]
Redirección temporal de exampledomain1.com a exampledomain2.com
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example1\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example1\.com$
RewriteRule ^(.*)$ "http\:\/\/example2\.com\/" [R=302,L]
NOTA: A continuación se muestran ejemplos de redirecciones permanentes. Las redirecciones temporales se pueden definir reemplazando [R=301,L] por [R=302,L] al final del código (donde sea necesario).
Redirección de example1.com/subfolder a example2.com
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example1\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example1\.com$
RewriteRule ^subfolder/$ "http\:\/\/example2\.com\/" [R=301,L]
Redirección de HTTP a HTTPS para example.com
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule .* https://example.com%{REQUEST_URI} [R,L]
o
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
Redirección de no-WWW a WWW
para cualquier dominio, .htaccess entra en vigor:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
para un dominio específico:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
Redirección de WWW a no-WWW
para cualquier dominio .htaccess entra en vigor:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
para un dominio específico:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule (.*) http://example.com/$1 [R=301,L]
Redirigir todas las páginas de example.com a las páginas correspondientes de domain.com
RedirectMatch 301 ^/(.*)$ http://domain.com/$1
NOTA: Todos los nombres de página deben coincidir en ambos dominios o la redirección resultará en un mensaje de "Página no encontrada".
Redirigir una página a una nueva URL
Redirect 301 /old_page.html http://www.domain.com/new_page.html
NOTA: Esta técnica puede ser útil para redirigir una página eliminada a un error 404, o para realizar ajustes de SEO después de actualizar referencias de contenido.
Este tipo de regla define restricciones de seguridad para un directorio o subdirectorio. Puedes proteger directorios con contraseña para que cualquier visitante que intente acceder a ellos deba ingresar un nombre de usuario y una contraseña.
Para configurar esta protección:
1. Crea el directorio que deseas proteger dentro de la carpeta /home/cpanel_user/.htpasswds/ (por ejemplo, para domain.com/test, la ruta es .htpasswds/domain.com/test/).
2. En este directorio, crea un archivo passwd y añade credenciales de acceso cifradas usando un generador en línea.
3. Añade las siguientes directivas al archivo .htaccess:
AuthType Basic
AuthName "Directory Name"
AuthUserFile "/home/cpanel_user/.htpasswds/public_html/test/passwd"
require valid-user
Esta función te permite crear páginas de error personalizadas para tu sitio web. Es una opción útil ya que te permite mostrar a los visitantes un mensaje de error que se ajusta al tema de tu sitio web si hay URLs rotas. Esto ayuda a evitar mostrar el error predeterminado '404 File Not Found' y en su lugar devuelve una página de error personalizada con instrucciones para guiar a los usuarios de vuelta al contenido de tu sitio web, evitando confusiones.
Para configurar una página de error personalizada, añade el siguiente texto a un archivo .htaccess:
ErrorDocument 404 /404.html
Esta línea indica al servidor web Apache que cargue un archivo 404.html ubicado en el directorio raíz del dominio cada vez que ocurra un error 404 (Archivo no encontrado).
NOTA: Para crear páginas de error personalizadas para otros errores (como 403 o 500), simplemente reemplaza 404 por el código de error correspondiente y /404.html por la ruta a tu archivo de error personalizado.
Si necesitas desactivar temporalmente algunas de las reglas existentes, por ejemplo para realizar pruebas, puedes comentarlas fácilmente. Para ello, simplemente añade una almohadilla (#) al principio de la línea.
Como alternativa, puedes desactivar una línea o un bloque de líneas seleccionándolas y usando el atajo Ctrl + / .