====== Configurer un site www en http ======

Voici mes prises de notes pour configurer un site Internet **http**. Le configuration est destinée pour un site Internet commençant par **www**.

<code>
  Configurer Apache 2 pour un site Internet
    http://www.abonnel.fr
</code>

===== Pré requis et objectifs =====

La configuration du site Internet s'effectue dans un fichier de configuration.

  * Il accepte une connexion sur le port http 80.
  * Il permet des connexions sans le ''www'' pour être redirigé vers le ''www''.
  * Il permet d'avoir des logs dans des fichiers séparés


===== Configuration Apache 2 =====

On configure un site web à partir d'un fichier ''conf'' qui contient des directives. Dans notre exemple de fichier ''conf'', il sera configuré le site Internet ''abonnel.fr'' et son alias ''www.abonnel.fr''.

Le fichier à créer est ''/etc/apache2/sites-available/100-fr.abonnel.conf''.

A noter qu'afin de prévenir notre paramétrage futur en **https**, la directive ''RewriteCond %{REQUEST_URI} !\.well-known/acme-challenge/.*'' permet de ne pas rediriger les appels pour Let's Encrypt (http/301). En effet, Let's encrypt n'accepte que des status http/200 lorsque nous mettrons en œuvre l'ajout d'un certificat SSL.
Cette directive peut-être laissée active, même si vous ne prévoyez pas d'ajouter une certificat SSL avec Let's Encrypt.

<code>
<VirtualHost *:80>

    ServerName abonnel.fr
    ServerAlias www.abonnel.fr
    
    Protocols h2 http/1.1

    DocumentRoot /var/www/abonnel.fr/www

    <Directory /var/www/abonnel.fr/www>
        Options -Indexes +MultiViews
        AllowOverride all
        Order allow,deny
        allow from all
    </Directory>


    <Location />
        Require all granted
    </Location>

    LogLevel warn
    ErrorLog ${APACHE_LOG_DIR}/abonnel.fr-error.log
    CustomLog ${APACHE_LOG_DIR}/abonnel.fr-access.log combined

    # Redirection des URL sans www
    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteCond %{REQUEST_URI} !\.well-known/acme-challenge/.*
    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}$1 [R=301,L]

</VirtualHost>
</code>







===== Activer la configuration du site =====

On active la configuration du site en utilisant le binaire ''a2ensite''
<code>
sudo a2ensite 100-fr.abonnel.conf
</code>

Et si tout se passe bien, on recharge la configuration d'Apache 2 sans avoir besoin de redémarre le service :
<code>
sudo service apache2 reload
</code>
