Bonjour,
Sur mon VPS, j’ai installé plusieurs sites grâce au Virtualhost. Cela fonctionne, mais le hic c’est que ça marche uniquement avec le www devant le nom de domaine.
Lorsque je tape l’url sans www, j’ai un message d’erreur :
Internal Server Error.
Voilà mon virtualhost :
<VirtualHost *:80>
ServerName monsite.com
ServerAlias www.monsite.com
ServerAlias *.monsite.com
ServerAdmin webmaster@monsite.com
DocumentRoot « /var/www/html/monsite.com »
<Directory /var/www/html/monsite.com>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
RewriteEngine on
# Domaine principal, redirection vers dossier /www/
RewriteCond %{HTTP_HOST} ^monsite\.com
RewriteRule ^(.*) /www/$1 [L]
# Sous-domaine(s), redirection vers les sous dossiers
RewriteCond %{HTTP_HOST} ^([^\.]+)\.monsite\.com
RewriteCond /var/www/html/monsite.com/%1 -d
RewriteRule ^(.*) /%1/$1 [L]
C’est repris d’un tuto, mais comme je ne sais pas traduire tout cela, je ne sais pas s’il y a une erreur.
Ou mon problème vient il d’un mauvais paramétrage du DNS chez OVH ?
Merci 
Bonjour,
Je n’ai jamais joué avec les règles de réécriture et ça fait un moment que je n’ai pas joué avec apache2, mais j’ai quand même ça à te proposer:
<VirtualHost *:80>
# General
ServerName monsite.com
# Redirection
Redirect / http://www.monsite.com
</VirtualHost>
<VirtualHost *:80>
# General
ServerName www.monsite.com
ServerAdmin webmaster@monsite.com
DocumentRoot /var/www/html/monsite.com
# LOG
LogLevel info warn
ErrorLog ${APACHE_LOG_DIR}/monsite.com_error.log
CustomLog ${APACHE_LOG_DIR}/monsite.com_access.log combined
# Folder protection
<Location />
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Location>
</VirtualHost>
/!\ sauvegarde ton fichier à toi avant d’essayer le mien!
Pour répondre à la question de ton sujet, si tu as une erreur 500, c’est que tu arrives quelque part. Je soupçonne qu’elle soit généré par tes règles de réécriture, mais comme je ne sais pas les lire…
Pour vérifier la résolution DNS on n’utilise pas un navigateur mais un outil de résolution DNS comme dig, host ou nslookup. Ensuite quand on a vérifié que le nom du site pointe vers la bonne adresse IP, on peut regarder la configuration du serveur.
Merci à tous les deux.
Donc avant de toucher à mes paramétrages virtualhosts, il faut vérifier la résolution DNS.
J’ai donc fait une recherche sur nslookup et j’ai été ensuite dirigé vers la page dnslookup.fr qui m’écrit en bas de page, en rouge : " Aucune réponse n’est renvoyé par les serveurs DNS donc il est impossible de faire le moindre test". Je ne sais pas quoi faire du coup.
Mon site étant paramétré avec let’s encrypt, mon fichier virtualhost de type monsite.com.conf a été dupliqué automatiquement pour accepter le https, devenant monsite.com-le-ssl.conf.
Si je modifie le virtualhost “d’origine” pour le remplacer par celui proposé de @sk4hrr, y a t’il quelque chose à craindre, à faire au préalable ? Désactiver le ssl peut-être ?
En vous remerciant
Salut,
voici le mien fonctionnel :
Listen 80
<VirtualHost *:80>
ServerAdmin postmaster@xxx.com
DocumentRoot /home/sites/xxx.com
ServerName xxx.com
ServerAlias www.xxx.com
Redirect "/" "https://www.xxx.com/"
<Directory /home/sites/xxx.com>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin postmaster@xxx.com
DocumentRoot /home/sites/xxx.com
ServerName xxx.com
ServerAlias www.xxx.com
Protocols h2 http/1.1
<Directory /home/sites/xxx.com>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/xxx.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/xxx.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/xxx.com/chain.pem
Header always set Strict-Transport-Security "max-age=15768000"
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php7.2-fpm.xxx.sock|fcgi://localhost"
</FilesMatch>
</VirtualHost>
</IfModule>
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AE$
SSLHonorCipherOrder on
SSLCompression off
SSLSessionTickets off
SSLUseStapling on
SSLStaplingResponderTimeout 5
SSLStaplingReturnResponderErrors off
SSLStaplingCache shmcb:/var/run/ocsp(128000)
Attention le SSLCipherSuite est tronqué ici.
Inspiré de ce generateur : https://mozilla.github.io/server-side-tls/ssl-config-generator/
Verifie au cas ou que le mod rewrite est bien activé, sait on jamais avec une mauvaise manip ^^
Pour les DNS, je crains que sans le nom de domaine on ne puisse t’aider.
@anon16237994, c’est top !
Je me questionnais à propos fichier SSL et j’ai jeté un oeil dedans, il s’avère que c’est une copie intégrale du fichier d’origine avec un petit supplément à la fin concernant let’s encrypt.
Avant ma manipe, j’ai fait un snapshot du server 
J’ai donc modifié monsite.com.conf et monsite.com-le-ssl.conf avec le modèle
<VirtualHost *:80> que tu m’as fourni et ça fonctionne parfaitement !
Merci à tous de vous être penché sur ce post et d’avoir apporté votre assistance. Merci beaucoup.
Ca fait toujours plaiz’ d’être remercié, c’est ce qu’une vraie communauté procure, du/le plaisir de partager !
N’hésites pas a revenir vers nous 