Dans le mod_rewrite documentation pour Apache 2.2, les États du pavillon RewriteRule [R]
:htaccess redirection permanente lance Erreur interne du serveur
Tout code d'état de réponse HTTP valide peut, en utilisant la syntaxe [R = 305], avec 302 code d'état étant utilisé par défaut si aucun n'est spécifié. Le code d'état spécifié ne doit pas nécessairement être un code d'état de redirection (3xx). Toutefois, si un code d'état est en dehors de la plage de redirection (300-399), la chaîne de substitution est entièrement supprimée et la réécriture est arrêtée comme si le L était utilisé.
En plus des codes de statut de réponse, vous pouvez également spécifier l'état de redirection en utilisant leurs noms symboliques:
temp
(par défaut),permanent
ouseeother
.
Cependant, l'extrait de code suivant semble que pour permettre aux "noms symboliques":
# Force HTTPS
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
# this works
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=permanent,NE]
# this doesn't work
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=308,NE]
Le journal des erreurs affiche:
[23 mar mai 2017 23:11:12 ] [alert] [client 192.168.33.1] /var/www/html/ventus/.htaccess: RewriteRule: invalide code de réponse HTTP '308' pour le drapeau 'R'
Cependant, 308 semble être le code d'état HTTP pour la redirection permanente: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/308
Est-ce un bug dans Apache ou est-ce que je fais quelque chose de mal?