Utilisation de mod_rewrite pour revenir 404 pour toutes les demandes sur http

Je suis à la configuration d'apache pour créer un site qui va utiliser mod_jk pour se connecter à une application en cours d'exécution sur tomcat.

Je veux seulement les requêtes https pour accéder à mon application, et je voudrais utiliser mod_rewrite pour renvoyer une 404 pour toute requête http sur le port 80.

Voici ma tentative de configuration de VirtualHost

<VirtualHost *:80>
  ServerName admin.app.com
  RewriteEngine On
  RewriteRule ^ [L,R=404]
</VirtualHost>

<VirtualHost *:443>
  ServerName admin.app.com
  SSLEngine On
  SSLCertificateFile /etc/apache2/ssl/bla.crt
  SSLCertificateKeyFile /etc/apache2/ssl/bla.key
  SSLCACertificateFile /etc/apache2/ssl/bla.ca
  SSLProtocol all
  SSLCipherSuite HIGHT:MEDIUM

  JkMount /myapp* 

</VirtualHost>

Maintenant tout est bien et bon moment de frapper, https://admin.app.com/myapp - je suis en mesure d'accéder à mon application tomcat confirmant que mod_jk et mes certificats SSL sont travail comme je m'y attendais, cependant, toute demande d'url-je faire avec http://retourne 400 bad request, pas la 404 que j'attendais.

J'ai ajouté RewriteLog et RewriteLogLevel 3 et a obtenu le résultat suivant

(2) init rewrite engine with requested uri /
(3) applying pattern '^' to uri '/'
(2) rewrite '/' -> '[L,R=404]'
(2) local path result: [L,R=404]
(2) init rewrite engine with requested uri /myapp/favicon.ico/
(3) applying pattern '^' to uri '/myapp/favicon.ico/'
(2) rewrite '/myapp/favicon.ico/' -> '[L,R=404]'
(2) local path result: [L,R=404]

Qui, je l'interpréter comme signifiant que d'une erreur 404 doit être retourné

Ma question est pourquoi je reçois un 400 Bad Request lorsque le journal semble être la réécriture de mes demandes correctement à une erreur 404, et, d'ailleurs, qu'est-ce que les meilleures pratiques concernant permettant à un site d'être accessible uniquement via https.

InformationsquelleAutor tlcowling | 2013-03-21