1

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 ou seeother.

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?

Répondre