Utilidades
Aceptar só peticións nunha URL determinada
Os espazos web son accesibles a través de varias URLs:
- http://usuario.webs.uvigo.es
- http://webs.uvigo.es/usuario
- http://usuario.webs2.uvigo.es
- http://webs2.uvigo.es/usuario
Por diversos motivos (por comodidade, para simplificar o acceso, etc.), o usuario pode querer acceder só por unha de elas.
Un xeito sinxelo de facer esto, e redirixir todas as peticións a http://usuario.webs.uvigo.es, é poñer, nun arquivo .htaccess na raíz do sitio web (dentro do directorio public) un arquivo similar ó seguinte (substituíndo "usuario" polo seu usuario web):
RewriteCond %{HTTP_HOST} =usuario.webs2.uvigo.es RewriteRule ^(.*)$ http://usuario.webs.uvigo.es/$1 [L,R=301] RewriteCond %{HTTP_HOST} ^(webs([0-9]+).uvigo.es|webs.uvigo.es)$ RewriteCond %{REQUEST_URI} ^/usuario/ RewriteRule ^/usuario/(.*)$ http://usuario.webs.uvigo.es/$1 [L,R=301]
Limitar acceso a páxinas web (.htaccess)
Arquivo .htaccess
Para limitar o acceso a unha ruta no servidor web pódese facer incluíndo un arquivo de nome ".htaccess". Se non se indica expresamente limita o acceso á carpeta na que está ubicado e a todas as que estén por baixo de ela. Pode terse un arquivo de este tipo en calquera carpeta do seu espazo web.
O contido é similar ó seguinte:
AuthType Basic AuthName "Zona Restrinxida" AuthUserFile "/var/www/vhosts/usuario/private/.htpasswd" Require valid-user
Arquivo .htpasswd (contrasinais e usuarios)
O arquivo .htpasswd (AuthUserFile) é un arquivo que contén os usuarios e contrasinais aceptados para o acceso a esta páxina web.
Compre que en "AuthUserFile" indique a ruta do arquivo .htpasswd de xeito absoluto, como: /var/www/vhosts/usuario/private/.htpasswd (esta é a ubicación que recomendamos para este arquivo).
Ten un formato do tipo:
usuario1:$1$TxjLW0lq$G3THdh2ZxuQxxXM3awSP3. usuario2:$1$0QtBsYvb$kwVA8UyJn37gV8h6JXH5T1
Onde o primeiro campo son os usuarios admitidos (usuario1, usuario2, ....) e o segundo un "hash" do contrasinal. Este arquivo pode crearse coa utilidade "htpasswd" ou directamente creando o "hash" md5 do contrasinal elexido.
Empregando htpasswd
@htpasswd -b .htpasswd usuario3 o-meu-contrasinal
Empregando mkpasswd para crear o contrasinal
@mkpasswd -m md5 o-meu-contrasinal
Recomendacións
- A ubicación do arquivo .htpasswd é recomendable que esté fora do espazo publicado (public), a tal efecto pode ubicarse dentro da carpeta "private" no seu espazo web
Pode indicar que restrinxe o acceso só a un usuario ou a uns usuarios específicos nunha ubicación, indicando:
AuthType Basic AuthName "Zona Restrinxida" AuthUserFile "/var/www/vhosts/usuario/private/.htpasswd" Require user usuario1 usuario2
Redirixir o espazo web a outra ubicación
Se desexa que o seu espazo web se redirixa a outra ubicación, por telo migrado a un sitio externo, por exemplo:
- Redirixir https://usuario.webs.uvigo.es a https://usuario.dominio.com
Debe, na raíz do espazo publicado (directorio public ), engadir un arquivo .htaccess co contido
Redirect / https://usuario.dominio.com
Se a redirección e permanente , pode modifiar esta configuración, indicando
Redirect permanent / https://usuario.dominio.com
Execución periódica de tarefas (cron)
Pódense executar tarefas periódicas (cron) coas seguintes limitacións:
- Só scripts en php
- Executaranse coas mesmas limitacións que o resto da aplicación
Deben de estar ubicadas nos directorios
Directorio Descrición cron/hourly Tarefas executadas cada hora cron/daily Tarefas executadas cada día cron/weekly Tarefas executadas cada semana cron/monthly Tarefas executadas cada mes
Erros comúns
As variables dun formulario aparecen como vacías
A partir de PHP 5.4 non se acepta xa a recollida de variables de formularios HTML mediante variables globais de PHP ("register_globals"), polo que un códgo como o seguinte non serve para recoller unha variable dun formulario:
[...] <input type="text" name="variable1"> [...]
<?php [...] global $variable1 ; [...]
No seu lugar é preciso recoller de xeito explícito a variable:
<?php [...] // Se e con GET $variable1 = $_GET['variable1'] ; // Se e con POST $variable1 = $_POST['variable1'] ; [...]
Algúns navegadores non aceptan as "cookies" do sitio
Se o usuario contén o caracter "_", algúns navegadores (en concreto Internet Explorer, pero pode pasar con outros) non aceptarán as cookies, o que pode provocar problemas na navegación dos usuarios. A solución é empregar ou solicitar un usuario distinto, ou modificar o usuario para que non conteña o caracter "_" (algo que recomendamos) ou solicitar un nome (host virtual) alternativo que permita acceder sen este caracter no nome do sitio.
Despois dun cambio de contrasinal para o acceso a base de datos aparece un erro en phpmyadmin
É preciso pechar a sesión en http://portal.webs.uvigo.es e voltar a abrila, o máis sinxelo é pechar o navegador que esté empregando.