Archivo de la etiqueta: cpanel

Redirecciones con .htaccess

Algunas veces necesitamos que nuestros sitios web funcionen en una única dirección web, ya sea por razones de SEO o para evitar que algunos scripts que hacen llamados ajax saquen errores.

Para hacer que todos los links del sitio sean redireccionados a el dominio con www:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

Para hacer que todos los links del sitio sean redireccionados a el dominio sin wwww:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^dominio\.com$ [NC]
RewriteRule ^(.*)$ http://dominio.com/$1 [R=301,L]

Para redireccionar una pagina a SSL (https) con www

RewriteCond %{HTTPS} off
# primero redireccionar a HTTPS:
# No poner www. aqui, se pondra en la siguiente regla
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# reescribir a www
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Algunas operaciones básicas con Cpanel XMLAPI

En un proyecto reciente para uno de mis clientes debía crear automáticamente cuentas de FTP, borrarlas luego de una semana y en otra semana mas, borrar el directorio con todos sus archivos. Resulta que en un servidor con Cpanel es mucho mas fácil de lo que parece, utilizando las funciones de Cpanel XMLAPI y con el nombre de usuario y contraseña de la cuenta.

Configuración básica para usar xmlapi.php: recuerda poner esta configuración antes de incluir la librería.

$cpanelConnection = array (
'host' => 'ip o nombre de dominio del servidor',
'port' => '2083',
'user' => 'nombre de usuario cpanel',
'pass' => 'contraseña cpanel') ;

Crear una cuenta de FTP:

require_once("xmlapi.php");

$xmlapi = new xmlapi($cpanelConnection['host']);
$xmlapi->password_auth($cpanelConnection['user'],$cpanelConnection['pass']);

$xmlapi->set_port($cpanelConnection['port']);
$xmlapi->set_debug(1);

$args = array( 
    'user'=>strtolower('nombre de usuario de la nueva cuenta de ftp, sin espacios o simbolos'),
    'pass'=>'password de la nueva cuenta de ftp',
    'quota'=>0, //0 si es ilimitado
    'homedir'=>'ruta al directorio de la nueva cuenta de ftp'
);

$xmlapi->api2_query($cpanelConnection['user'], 'Ftp', 'addftp', $args);

Borrar una cuenta de FTP (sin borrar sus archivos):

require_once("xmlapi.php");

$xmlapi = new xmlapi($cpanelConnection['host']);
$xmlapi->password_auth($cpanelConnection['user'],$cpanelConnection['pass']);

$xmlapi->set_port($cpanelConnection['port']);
$xmlapi->set_debug(1);

$args = array( 
    str_replace('.','','nombre de usuario ftp a eliminar')
);

$xmlapi->api1_query($cpanelConnection['user'], 'Ftp', 'delftp', $args);

Luego de crear y borrar las cuentas de ftp, debía borrar el directorio con todos sus archivos. Normalmente se puede hacer en PHP  con un script recursivo; pero cuando se crea la cuenta de FTP desde Cpanel, se crea también un archivo .ftpquota, que no puede ser borrado ya que pertenece a otro usuario. Así que puse manos a la obra a buscar como borrar el directorio con el mismo usuario de Cpanel con que se creo el directorio:

require_once("xmlapi.php");

$xmlapi = new xmlapi($cpanelConnection['host']);
$xmlapi->password_auth($cpanelConnection['user'],$cpanelConnection['pass']);

$xmlapi->set_port($cpanelConnection['port']);
$xmlapi->set_debug(1);

$xmlapi->api2_query($cpanelConnection['user'], 'Fileman', 'fileop', array("op"=>"unlink", "sourcefiles"=>'Ruta de la carpeta a eliminar'));

Hay muchas otras funciones para explorar y automatizar un poco mas los procesos que escribimos en nuestros scripts.

En caso que no encuentren la librería en el sitio del desarrollador, la pueden descargar aqui: xmlapi.php