Curiosité redirection https

sur un drupal j’ai essayé diverses méthodes de redirection https:

#       Redirect permanent / https://site.org/
        RewriteEngine On
#        RewriteCond %{HTTP_HOST} ^(.*)site\.org$
#        RewriteRule ^(.*)$ https://%1site.org$1 [R=302,L]
        RewriteCond %{HTTPS} !=on
        RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

les url http://site.com, http://site.com/index.php/u/admin sont redirigées vers https mais curieusement l’url suivante ne l’est pas et donne 404:

http://site.com/u/admin

Pourquoi ?

Bonjour,
La meilleure façon de faire c’est la première ligne que tu as commentée :wink:

Il est probable que ta règle de réécriture qui transforme :
http://site.com/u/admin en https://site.com/u/admin ne fonctionne pas parce que le index.php est manquant (ajouté ou enlevé par une règle dans un autre fichier ?)

Les commandes sont dans le vhost du domaine:

$ cat /etc/apache2/sites-enabled/site.org.conf 
<VirtualHost *:80>
        ServerName  site.org
        ServerAlias *.site.org
        ServerAdmin x@x.com
        DocumentRoot /var/www/site.org/web

       Redirect permanent / https://site.org/
#      RewriteEngine On
#        RewriteCond %{HTTP_HOST} ^(.*)site\.org$
#        RewriteRule ^(.*)$ https://%1site.org$1 [R=302,L]
#        RewriteCond %{HTTPS} !=on
#        RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

Quel autre fichier pourrait le court circuiter ?

Est-ce que cela fonctionne avec cette configuration (redirect permanent) ? Sinon quel est le problème ?

Tout fichier htaccess situé dans le dossier du site et tout script du site susceptible de modifier les URL.

N.B. : /etc/apache2/sites-enabled/ ne doit contenir que des liens symboliques, les fichiers sont sous /etc/apache2/sites-available/.

https://site.org/u/admin fonctionne
http://site.org/u/admin donne 404

Il n’y a pas une directive pour empêcher les .htacess d’être lus avant la redirection ?

Les .htaccess sont interprétés après la redirection. Voir la doc apache.

Le problème se situe certainement au niveau de la configuration de Drupal et non de celle d’Apache.

Une question bête, as-tu redémarré apache2?

Non, pas bête la question, car ce genre de blague m’est arrivée plus souvent qu’à mon tour…

@Bruno: si la redirection https a lieu pourquoi est-ce qu’on obtient 404 puisque cette url fonctionne en https ?

Je l’ai déjà dit. Il y a probablement quelque part une réécriture d’URL qui concerne index.php. Il faut voir la doc de Drupal.
Montre-nous la configuration complète de ton hôte virtuel sur les ports 80 et 443, le fichier .htacces de Drupal et le fichier de configuration de Drupal.

Encore une autre question bête, as-tu essayé avec un autre navigateur? En vidant le cache de celui en cours?