Vous pouvez définir un ErrorDocument personnalisé pour la réponse 301, dans lequel vous pouvez définir une réponse vide. (Bien que la spécification d'un "document d'erreur" personnalisé pour une non-erreur, c'est-à-dire pour toute autre chose qu'un statut 4xx ou 5xx, ne soit pas explicitement documentée).
Par exemple :
ErrorDocument 301 /errordocs/empty.html
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Où /errordocs/empty.html
est littéralement un document vide.
Alternativement, vous pouvez définir le ErrorDocument
à un simple chaîne de caractères . Mais vous ne pouvez pas définir une chaîne entièrement vide, car Apache ne voit alors pas le deuxième argument et s'arrête avec une erreur : "ErrorDocument takes two arguments". Cependant, vous pouvez réduire cette chaîne à un seul caractère. Par exemple, pour n'envoyer qu'un trait d'union ( -
) dans le corps de la réponse :
ErrorDocument 301 "-"
Cependant, cela permet de définir le corps de la réponse pour les éléments suivants alle Réponses Apache 301. (Cependant, si cela se trouve dans le conteneur VirtualHost pour le port 80 dans la configuration du serveur, cela sera de toute façon limité aux redirections HTTP uniquement).
参考 Cette réponse à une question StackOverflow donne plus de détails sur renvoyer une réponse vide de la part d'Apache .
Cependant, comme @MichaelHampton l'a souligné dans les commentaires, si vous devriez envoyer un corps de réponse vide dans le cas d'une redirection est une autre affaire.
Il se trouve dans la configuration du serveur (fichier .conf).
A part : Si cela se trouve dans la configuration du serveur, alors vous devriez utiliser un simple mod_alias. Redirect
dans le conteneur VirtualHost non-HTTPS (port 80), à la place de mod_rewrite. L'utilisation de mod_rewrite dans ce contexte, afin de vérifier explicitement la présence de HTTPS
est inutile. Cela ne fait aucune différence pour le document d'erreur qui est renvoyé.