C'est peut-être ça le problème : Apache fait un include sites-enabled/* donc les 3 fichiers sont pris en compte. D'où l'idée aussi du lien symbolique, comme ça, tu peux avoir 40.000 fichiers dans sites-available, c'est pas grave...
Version imprimable
ce serveur doit avoir UN site unique, doit je modifier mon httpd.con :
actuel
par :Code:
1
2 LoadModule rewrite_module modules/mod_rewrite.so Include /etc/apache2/sites-enabled/*
?? :roll:Code:
1
2
3
4 LoadModule rewrite_module modules/mod_rewrite.so Include /etc/apache2/sites-enabled/000-default Include /etc/apache2/sites-enabled/ssl
ps; j'ai aussi :
dans sites-availables , 3 fichiers !
default default.save ssl
Et les fichiers ".save" y sont pour quelque chose ... au lieu d'avoir des erreures du type (lorsque je touche au ports.conf ou https.conf ):
j'aiCode:
1
2
3
4
5
6
7
8 Bad Request Your browser sent a request that this server could not understand. Reason: You're speaking plain HTTP to an SSL-enabled server port. Instead use the HTTPS scheme to access this URL, please. Hint: https://monserveur.fr/
localhost etait utiliser dans les premieres config que je faisait ...Code:
1
2
3
4
5
6
7 Bad Request Your browser sent a request that this server could not understand. Reason: You're speaking plain HTTP to an SSL-enabled server port. Instead use the HTTPS scheme to access this URL, please. Hint: https://localhost/
Je fait quoi ? je les "rm" d'ici ??
Non, laisse le *.
Donc si tu veux utiliser 2 fichiers : 000-default et ssl, il ne te faut que ces 2 seuls fichiers dans le répertoire sites-enabled.
000-default :
ssl :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 NameVirtualHost *:80 <VirtualHost *:80> ServerName monserveur.fr ServerAdmin webmaster@monserveur.fr RewriteEngine on RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}/$1 [QSA,L] DocumentRoot /var/www/ <Directory /> Options FollowSymLinks AllowOverride None </Directory> </VirtualHost>
Tous les autres fichiers qui sont dans ce répertoire doivent être supprimés (rm).Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 NameVirtualHost *:443 <VirtualHost *:443> ServerName monserveur.fr DocumentRoot /var/www/ SSLEngine on SSLCertificateFile /etc/apache2/server.crt SSLCertificateKeyFile /etc/apache2/server.key <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews Allowoverride All Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/error.log LogLevel warn CustomLog /var/log/apache2/access.log combined ServerSignature On Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost>
Salut, j'ai mit exactement la config que tu m'as proposer ci dessu et j'ai les mêmes souci !!
le ssl que j'ai retoucher est celui la --> /etc/apache2/sites-available/ssl
car mon fichier ssl fait reference a celui de sites-available ..
un ls -l me donne :
-rw-r--r-- 1 root root 1751 2008-10-27 16:06 000-default
lrwxrwxrwx 1 root root 32 2008-09-29 14:52 ssl -> /etc/apache2/sites-available/ssl
sa pourrais venir d'ou ?
La redirection ne se fait qu'en interne et pas en externe ..
OK, alors on va tout remettre à plat, c'est mieux :
- Copie tout ce qui se trouve dans /etc/apache2/sites-enable/000-default dans /etc/apache2/sites-available/default
- Supprime le fichier /etc/apache2/sites-enable/000-default
- Dans /etc/apache2/sites-enable, maintenant tu ne dois avoir plus que 2 liens symboliques : 000-default et ssl.
- Crée un lien symbolique /etc/apache2/sites-enable/000-default -> /etc/apache2/sites-available/default
A partir de maintenant, n'édite plus que les fichiers qui se trouvent dans /etc/apache2/sites-available : default et ssl.
/etc/apache2/sites-available/default :
/etc/apache2/sites-available/ssl :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 NameVirtualHost *:80 <VirtualHost *:80> ServerName monserveur.fr ServerAdmin webmaster@monserveur.fr RewriteEngine on RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}/$1 [QSA,L] DocumentRoot /var/www/ <Directory /> Options FollowSymLinks AllowOverride None </Directory> </VirtualHost>
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 NameVirtualHost *:443 <VirtualHost *:443> ServerName monserveur.fr DocumentRoot /var/www/ SSLEngine on SSLCertificateFile /etc/apache2/server.crt SSLCertificateKeyFile /etc/apache2/server.key <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews Allowoverride All Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/error.log LogLevel warn CustomLog /var/log/apache2/access.log combined ServerSignature On Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost>
j'ai eu pas mal de souci entre temps.... mes certificats n'etaient pas bon, modification de mes firchiers.pem , puis grosse erreur qui m'a empecher d'avoir acces au site meme en http avec ssl deséctivé -a2dismod ssl- ....
j'ai tout remis a plat, nouveaux certificat, vhos reconfiguré comme tu l'as indiqué, ssl en route ....Code:
1
2
3
4
5
6 [Tue Oct 28 15:02:23 2008] [error] [client ip.12.ip.34] File does not exist: /htdocs [Tue Oct 28 15:02:23 2008] [error] [client ip.12.ip.34] File does not exist: /htdocs [Tue Oct 28 15:20:07 2008] [error] [client ip.12.ip.34] Invalid method in request \x16\x03\x01 [Tue Oct 28 15:20:13 2008] [error] [client ip.12.ip.34] Invalid method in request \x80L\x01\x03\x01
j'ai zappé mon sites-available. je ne travail que sur sites-enabled. (000-default et ssl ).
Pour le moment tout refonctionne comme avant ...
Donc la redirection ne se fait qu'en interne, et en externe en forçant https sa marche mais en http pas de redirection ...
Que faut il faire ensuite ? stp ;)
C'est dommage, je dis juste l'inverse :aie: Tu travailles dans le répertoire que tu veux. Je dis juste qu'il faut faire attention si tu édites des fichiers directement dans sites-enabled : il ne doit pas y avoir d'autres fichiers que 000-default et ssl. S'il y a d'autres fichiers (des .tmp, des ~..., etc.) générés par ton éditeur de texte, ça peut semer la meme...
Essaie voir avec RewriteCond %{HTTPS} !on à la place de RewriteCond %{HTTPS} off.
oui j'avais vue que c'etait l'inverse, mais la config la plus clean se trouvais sur enabled.. :?
avec !on j'ai toujours le meme cas de figure.. pas de redirection :( en passant j'ai ces erreur au restart
je les ai quasiement toujours eu ..Code:
1
2
3
4 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName [Tue Oct 28 17:12:05 2008] [warn] NameVirtualHost *:443 has no VirtualHosts [Tue Oct 28 17:12:05 2008] [warn] NameVirtualHost *:80 has no VirtualHosts
J'aime pas les 2 warnings sur NameVirtualHost. Tu peux faire une recherche dans tous les fichiers de configuration d'Apache pour voir s'il y a d'autres NameVirtualHost ou <VirtualHost> qui traînent ?
etCode:
1
2root@serveur:/# grep -l "<VirtualHost>" /etc/apache2/* /etc/apache2/apache2.conf
avec grep -r j'ai :Code:
1
2
3 root@serveur:/# grep -l NameVirtualHost /etc/apache2/* root@serveur:/#
pour NameVirtualHost
pour <VirtualHost>Code:
1
2
3
4
5
6
7
8
9 root@serveur:/etc/apache2# grep -r NameVirtualHost . ./sites-available/ssl:NameVirtualHost mondomaine.fr:443 ./sites-available/default:#NameVirtualHost *:80 ./sites-available/default:#NameVirtualHost *:443 ./sites-enabled/000-default:#NameVirtualHost mondomaine.fr:80 ./sites-enabled/000-default:NameVirtualHost *:80 ./sites-enabled/ssl:#NameVirtualHost mondomaine.fr:443 ./sites-enabled/ssl:NameVirtualHost *:443
pour VirtualHostCode:
1
2
3
4 root@serveur:/etc/apache2# grep -r "<VirtualHost>" . ./apache2.conf:# If you do not specify an ErrorLog directive within a <VirtualHost> ./apache2.conf:# logged here. If you *do* define an error logfile for a <VirtualHost>
En gris claire toutes les valeurs en commentaires.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 root@serveur:/etc# grep -r VirtualHost . ./apache2/sites-available/ssl:NameVirtualHost domaine.fr:443 ./apache2/sites-available/ssl:<VirtualHost domaine.fr:443> ./apache2/sites-available/ssl:</VirtualHost> ./apache2/sites-available/default:#NameVirtualHost *:80 ./apache2/sites-available/default:#NameVirtualHost *:443 ./apache2/sites-available/default:<VirtualHost domaine.fr:80> ./apache2/sites-available/default:</VirtualHost> ./apache2/sites-available/default:<VirtualHost domaine.fr:443> ./apache2/sites-available/default:</VirtualHost> ./apache2/sites-enabled/000-default:#NameVirtualHost domaine.fr:80 ./apache2/sites-enabled/000-default:NameVirtualHost *:80 ./apache2/sites-enabled/000-default:<VirtualHost *:80> ./apache2/sites-enabled/000-default:</VirtualHost> ./apache2/sites-enabled/ssl:#NameVirtualHost domaine.fr:443 ./apache2/sites-enabled/ssl:NameVirtualHost *:443 ./apache2/sites-enabled/ssl:<VirtualHost *:443> ./apache2/sites-enabled/ssl:</VirtualHost> ./apache2/apache2.conf:# If you do not specify an ErrorLog directive within a <VirtualHost> ./apache2/apache2.conf:# logged here. If you *do* define an error logfile for a <VirtualHost> ./apache2/apache2.conf:# even on a per-VirtualHost basis. The default include files will display
Tout me semble correct, je ne comprends vraiment pas... A tout hasard, commente ou supprime le RewriteCond %{HTTPS} :roll:
:roll: Què Pasa ?Code:
1
2
3
4
5
6 * Reloading web server config apache2 [Wed Oct 29 11:30:30 2008] [warn] module rewrite_module is already loaded, skipping apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName [Wed Oct 29 11:30:30 2008] [warn] NameVirtualHost *:443 has no VirtualHosts [Wed Oct 29 11:30:30 2008] [warn] NameVirtualHost *:80 has no VirtualHosts
sa ne viens pas de :
saCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 NameVirtualHost *:80 <VirtualHost *:80> ServerName mondomaine.fr ServerAdmin webmaster@monserveur.fr RewriteEngine on # RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}/$1 [QSA,L] DocumentRoot /var/www/ <Directory /> Options FollowSymLinks AllowOverride None </Directory> </VirtualHost>
Non, justement, c'est fait pour : si tu veux écrire <VirtualHost xxx>, il faut un NameVirtualHost xxx. Mais du coup, c'est ça qui est trop étrange : on a l'impression qu'Apache ignore totalement le bloc <VirtualHost *:80> qui suit. A tout hasard, as-tu regardé le fichier avec un éditeur hexadécimal ? Y aurait pas un caractère caché quelque part qui sèmerait le trouble ?
mes fichier je ne les touches meme pas, j'utilise la fonction nano pour les éditer.
tout est sur le serveur a distance.
J'utilise putty en utf-8 pour la connection ...
Tu veux peu être avoir l'oeil sur d'autres fichiers ?? n'hesite pas..
Là, désolé, mais je sèche, plus d'idée :aie:
:aie:
en eessayant une config de ce style ?
sa donnrais quoi ?Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 <VirtualHost mon ip externe:80> ServerName mondomaine.fr <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [L,R] </IfModule> </VirtualHost>
Je ne sais pas trop, faut tester. Mais mettre l'adresse IP externe dans <VirtualHost> ne devrait pas y changer grand-chose. 2 choses à propos de cette ligne <VirtualHost mon ip externe:80> :
- L'adresse IP à indiquer doit être une adresse IP du serveur. Tu peux mettre l'IP externe si cette IP est effectivement une IP du serveur.
- Pense à mettre ne NameVirtualHost qui va bien.
ok ... je vais laisser tout mes namevirtualhost en *:80 et mettre l'ip serveur en <virtualhost ipserveur:port>
.. a force de faire toute les combinaison possible, on finira bien par trouver celle qui va le mieux :mouarf: