Informazioni commerciali +39 0575 05077
  Assistenza telefonica +39 0575 0505
 
Hosting > Hosting Windows > FAQ > Linguaggi e Spazio web - Suggerimenti di configurazione

4.1 Linguaggi e Spazio web - Suggerimenti di configurazione

Una guida con suggerimenti di configurazione e gestione del proprio sito.
Il percorso assoluto del Dominio è:

d:\inetpub\webs\nomedominioxxx

Ad esempio, il percorso assoluto del Dominio www.prova.it è d:\inetpub\webs\provait
 
I Server di Aruba supportano, oltre alle consuete pagine statiche (htm, html):

Microsoft IIS 8.5
Pagine ASP.NET/.NET framework (2.0-3.5/4.0-4.7)
Classic ASP 3.0
Supp. Visual Studio .NET
Ajax / LINQ
MVC
PHP (selezionabile tra 5.4.x , 5.5.x, 5.6.x e 7.2.x)
Perl 5.26
Server Side Include (SSI)
ADO.NET
XML 4
WAP

Supportato in modo nativo il Database Access® (.mdb - .accdb).
Le pagine possono inoltre scrivere su file di formato testuale come ad esempio txt, dat, log, csv e simili, previo inserimento nelle apposite cartelle con permessi speciali. Supportata tramite il driver MyODBC anche la connessione a Database MySQL, opzione acquistabile a parte fra i servizi aggiuntivi.
Di seguito i nomi con cui deve essere nominata la propria Homepage, indicati in ordine di priorità:

Index.htm
Index.html
Index.asp
Index.php
Index.shtm
Index.wml
Index.aspx
Default.asp
Default.php
Default.html
Default.htm
Default.shtm
Default.wml
Default.aspx
 
Di seguito l'elenco di codici da utilizzare per poter effettuare il Redirect e reindirizzare gli utenti da una pagina (ad esempio iniziale) del proprio sito ad altra, o a una esterna (ad esempio in caso di manutenzione).

Per procedere, inserire i codici di seguito riportati all'interno delle pagine di default del proprio Dominio:

Redirect sfruttando i meta Tag, per pagine htm, html, shtm
Inserire all'interno dei tag della propria pagina il codice
 
<META HTTP-EQUIV=REFRESH CONTENT="1; URL=https://www.aruba.it">
dove 1 è il numero di secondi di attesa e https://www.aruba.it è l'url al quale si viene rimandati accedendo alla pagina che contiene questo codice.

Redirect con Javascript, per pagine htm, html, shtm
Inserire all'interno dei tag <head> e </head> della propria pagina il codice
 
<SCRIPT LANGUAGE="Javascript">
<!-- window.location="https://www.aruba.it" //-->
</SCRIPT>
Modificare https://www.aruba.it con la propria destinazione (è possibile indicare anche una pagina precisa)

Redirect con linguaggio ASP, per pagine asp
Inserire nella pagina solo il codice sotto riportato:
 
<%response.buffer=true%> <% response.redirect "https://www.aruba.it" %>
Modificare la destinazione https://www.aruba.it. Utilizzare sempre l'istruzione <%response.buffer=true%> per evitare di incorrere in errori di interpretazione lato server.

Redirect con Perl script, per pagine asp
Inserire nella pagina solo il codice sotto riportato:
 
<%@LANGUAGE="PerlScript"%>
<% $url="https://www.aruba.it/servizi.htm"; $Response->Redirect("$url"); %>
Redirect con PHP, per pagine php
Inserire nella pagina solo il codice sotto riportato:
 
<? $url = "https://www.aruba.it";
if ($url) { header("Location: $url");}
else
if($QUERY_STRING) { header("Location: .urldecode($QUERY_STRING)"); }
else {
echo "Attenzione, l'URL è sbagliato";}
?>
Modificare https://www.aruba.it con la propria destinazione (è possibile indicare anche una pagina precisa).

Per fare in modo che il Redirect sia di tipo 301 (Moved Permanently) è sufficiente modificare header("Location: $url"); nel seguente modo: header("Location: $url", TRUE, 301);
Per evitare che al visitatore del proprio sito non rimangano in memoria "Temporary Internet File" nella cache del browser, occorre programmare appositamente le pagine.

Pagine asp
Inserire il seguente codice:
 
Response.CacheControl = "no-cache" Response.AddHeader "Pragma", "no-cache" Response.Expires = -1
html
Inserire il seguente codice
 
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
Il Database Access va posizionato nella apposita cartella mdb-database che possiede gli adeguati permessi di scrittura e di sicurezza.

Sono supportate le versioni Access2000 e superiori. In caso di versioni inferiori (97) è possibile che, alternativamente, vengano riscontrati degli errori, causa il non supporto delle nuove versioni di Mdac Microsoft (collegamento a errore Microsoft OLE DB Provider for ODBC Drivers error "80004005".
  Sono possibili due tipi di connessioni al Database Access:
  • Tramite ODBC (Open DataBase Connectivity) usando la libreria degli oggetti ADO (ActiveX Data Object), connessione dsn-less.

    La connessione, per collegarsi al Database non usa file DSN di sistema, ma una connessione diretta al Database sul server, indicandone il percorso. Usando l'oggetto Server e il suo metodo CreateObject si genera l'oggetto di ADO ADODB.Connection
     
    Dim conn Set conn = Server.CreateObject("ADODB.Connection")
    Attraverso cui è possibile connettersi fisicamente al nostro Database che risiede nella cartella speciale apposita mdb-database e quindi aprirlo: la stringa di connessione conta tutti i parametri per raggiungere il Database

    Per Database .mdb:
     
    conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("/mdb-database/database.mdb")
    Per Database .accdb:
     
    strconn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Server.MapPath("mdb-database\database.accdb") conn.open strconn
    Tramite SQL è poi possibile interrogare ed interagire con il Database usando apposite query.
    Al termine delle interrogazioni (non al termine della pagina) chiudere immediatamente gli eventuali oggetti recordset utilizzati e la connessione al Database
     
    Conn.Close Set Conn=Nothing
    Prima si chiudono oggetti e connessione, prima tornano disponibili sul server gli oggetti e le risorse necessarie all'ottimale gestione dei Database da parte di tutti gli utenti. Per lo stesso motivo si consiglia di non richiamare gli oggetti Connection e Recordset all'interno degli oggetti Session o Application istanziabili nel file global.asa.
  • Tramite **OLEDB Provider, un altro oggetto di ADO
Per attivare la connessione al Database cliccare su "Apri", e provare i tre tipi di query:

  • la prima apre tutti i record presenti nella tabella NOMI del database, più lenta e pesante per il differente carico di elaborazione sul server
  • la seconda e la terza filtrano e richiedono un numero preciso di record, ordinando i risultati a seconda delle proprie necessità.
 
Le impostazioni relative all'Host vanno collocate su automatico. In tal modo si imposta il miglior sistema di accesso relativo al Client FTP utilizzato e al suo modo di interpretare i settaggi del Server FTP.

Il Server FTP su Aruba non richiede solitamente Ftp Passivo ma, oltre ad essere suscettibile di variazioni, è possibile che, in dipendenza della configurazione e dei settaggi di una eventuale rete e Firewall interposti, sia necessario impostare Ftp passivo.
Per garantire la compatibilità di PHP5 verso PHP4 è necessario apportare alcune modifiche al vecchio codice e alcuni accorgimenti nella scrittura del nuovo.

Di seguito alcune indicazioni presenti nella pagina di supporto php.net
  1. Cambiamenti non compatibili
    1. Parole chiave riservate.
    2. Strrpos() e strripos() utilizzano l'intera stringa come argomento di ricerca
       
      <?php var_dump(strrpos('ABCDEF','DEF')); //int(3)
      var_dump(strrpos('ABCDEF','DAF')); //bool(false) ?>
    3. Uso illegale degli offset delle stringhe causa E_ERROR invece di E_WARNING. Un esempio di utilizzo illegale è: $str = ';ab'; unset($str[0]);.
    4. array_merge() è stata cambiata per accettare solo array. Se viene passata una variabile che non è un array, un E_WARNING viene lanciato per ogni parametro. Il codice può cominciare ad emettere E_WARNING improvvisamente.
    5. La variabile server PATH_TRANSLATED è stata modificata: visionare la descrizione di $_SERVER['PATH_TRANSLATED'] nel manuale.
    6. Un oggetto senza proprietà non è più considerato "vuoto".
       
      <?php class test { } $t = new test();
      var_dump(empty($t)); // echo bool(false)
      if ($t) {
      // Viene eseguito } ?>
    7. In alcuni casi le classi devono essere dichiarate prima dell'utilizzo. Questo succede solo se è usata qualcuna delle nuove caratteristiche di PHP 5 (come le interfacce). In caso contrario il comportamento è quello vecchio.
       
      <?php
      //funziona senza errori: $a = new a(); class a { }
      //emette un errore: $a = new b();
      interface c { } class b implements c { }
      ?>
    8. get_class(), get_parent_class() e get_class_methods() in PHP 5 restituiscono il nome di classi/metodi come sono dichiarati (case-sensitive) e questo può creare problemi nei vecchi script che si basano sul comportamento precedente (il nome di classe/metodo era sempre restituito a caratteri minuscoli). Una soluzione possibile è cercare queste funzioni negli script ed utilizzare strtolower(). La modifica alla sensibilità di maiuscole/minuscole si applica anche alle costanti magiche predefinite __CLASS__, __METHOD__, e __FUNCTION__. I valori sono restituiti esattamente come dichiarati (case-sensitive).
    9. ip2long() ora restituisce FALSE quando un IP address non valido è passato come argomento alla funzione, e non più -1.
    10. Se esistono funzioni definite in un file incluso, queste possono essere utilizzate nel file principale indipendentemente dal fatto che siano prima di return() o dopo. Se il file è incluso due volte, PHP 5 emette un errore fatale poiché le funzioni erano già dichiarate. Si raccomanda di utilizzare include_once() invece di controllare se il file è stato già incluso e fare un return condizionato all'interno del file incluso.
    11. Non si può riassegnare $this. L'esempio di seguito indicato funziona su PHP4 (mostra "OK"), mentre produce un fatal error su PHP5:
       
      <? class a { var $text; function a() { $this->text = 'OK'; } }
      class b { var $text = 'NOT OK'; function b() { $this = new a(); } }
      $myClass = new b(); echo $myClass->text; ?>
    12. Non sono consentiti commenti al codice con la seguente sintassi <?=//commento?>
    13. Constructors e reference. L'esempio indicato funziona sotto PHP4 mentre produce un avviso E_NOTICE su PHP5. In questo caso il problema si risolve rimuovendo "&"
       
      <? class MyClass { function MyClass() { echo('OK'); } } $myObj = null; $myObj &= new MyClass(); ?>
      Altri dettagli sono disponibili alla pagina dedicata. Inoltre, in caso di utilizzo di applicazioni di terze parti, cms, portali, forums, guestbook, ecc, assicurarsi che sia compatibile con PHP5.
  2. Nuove funzioni PHP5
    1. array_combine() - Crea un array utilizzando un array per le chiavi e un altro per i valori.
    2. array_diff_uassoc() - Calcola la differenza tra array con la possibilità di controllare gli indici mediante una funzione di callback fornita dall'utente.
    3. array_udiff() - Calcola la differenza tra array utilizzando una funzione callback per la comparazione dei dati.
    4. array_udiff_assoc() - Calcola la differenza tra array con la possibilità di verificare gli indici. I valori sono comparati utilizzando una funzione di callback.
    5. array_udiff_uassoc() - Calcola la differenza tra array con la possibilità di verificare gli indici. I valori sono comparati utilizzando una funzione di callback. La verifica degli indici è fatta utilizzando una funzione di callback.
    6. array_walk_recursive() - Applica una funzione utente in modo ricorsivo ad ogni elemento di un array.
    7. array_uintersect_assoc() - Calcola l'intersezione di array con la possibilità di verificare gli indici. I valori sono comparati utilizzando una funzione di callback.
    8. array_uintersect_uassoc() - Calcola l'intersezione di array con la possibilità di verificare gli indici. Sia i valori che gli indici sono comparati utilizzando funzioni di callback.
    9. array_uintersect() - Calcola l'intersezione di array. I valori sono comparati utilizzando una funzione di callback.
I seguenti linguaggi non sono supportati dall'offerta base:
  • JSP (Java Server Page
  • .cfml
  • Cold Fusion
  • J2SE
  • Tomcat
Tali linguaggi sono una prerogativa dei Server Dedicati  o dei Cloud Server.
Nel caso in cui sia necessario limitare la visualizzazione del proprio sito ad alcuni specifici paesi, ad esempio per ragioni di copyright, marchi registrati e diritti d'autore, è possibile evitare che i visitatori di alcuni paesi accedano alla pagina. Per farlo, inserire un semplice codice Javascript all'interno della propria pagina, indipendentemente dal profilo Hosting (Windows o Linux) utilizzato.

Di seguito due esempi pratici relativi a due distinti servizi gratuiti:
  • Utilizzo del servizio gratuito Geobytes.com

    Per effettuare il Redirect inserire il seguente codice tra i tag <head> e </head>
     
    <script language="Javascript" src="http://gd.geobytes.com/Gd?pages=IT&ext=html&after=-1"></script>
    <script language="javascript">
    if(typeof(sGeobytesLocationCode)!="undefined"&&sGeobytesLocationCode.indexOf('IT')==0)
    {document.write("<META HTTP-EQUIV='Refresh' CONTENT='0; URL=inserire qui indirizzo'>");}
    </script>
  • Utilizzo del servizio gratuito Maxmind.com

    Per effettuare il Redirect inserire il seguente codice tra i tag <head> e </head>
     
    <script language="JavaScript" src="http://j.maxmind.com/app/geoip.js"></script>
    <script language="javascript">
    function check_country_code() {
    if(geoip_country_code()=="CN" || geoip_country_code()=="IN" || geoip_country_code()=="TH" || geoip_country_code()=="HK" ||      geoip_country_code()=="VN")
    window.location = 'https://www.aruba.it'
    else
    return true;}
    </script>
 
La tua opinione è importante per noi!
 

Non hai trovato quello che cerchi?

Contatta i nostri esperti, sono a tua disposizione.