web-dev-qa-db-fra.com

Redirect to non-www et non-https dans htaccess

Je dois rediriger mon blog WordPress de https://www.example.com/blog vers http://example.com/blog à l'aide du fichier .htaccess. Voici ce que j'ai jusqu'à présent:

<IfModule mod_rewrite.c>
    Options +FollowSymlinks -MultiViews
    RewriteEngine On
    RewriteBase /

    RewriteEngine On
    RewriteCond %{HTTPS} on
    RewriteCond %{HTTP_Host} ^www\.(.*)$ [NC]
    RewriteRule (.*) http://%{HTTP_Host}%{REQUEST_URI} [R=301,L]
</IfModule>

Cependant, ceci ne fait que rediriger de https vers http mais conserve toujours le www. Comment puis-je me débarrasser de la www et supprimer la https en même temps? Toute aide serait appréciée.

2
Daniel Harris

Essayez avec ces lignes uniquement de passer de https à http:

RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_Host}%{REQUEST_URI} [R=301,L]

si cela ne fonctionne pas, recherchez 301 redirect https to http. Ce sujet est déjà bien couvert.

Pour enlever le www:

<IfModule mod_rewrite.c>
  RewriteEngine on

  # Set "protossl" to "s" if we were accessed via https://.  This is used later
  # if you enable "www." stripping or enforcement, in order to ensure that
  # you don't bounce between http and https.
  RewriteRule ^ - [E=protossl]
  RewriteCond %{HTTPS} on
  RewriteRule ^ - [E=protossl:s]

  # To redirect all users to access the site WITHOUT the 'www.' prefix,
  # (http://www.example.com/... will be redirected to http://example.com/...)
  # uncomment the following:
   RewriteCond %{HTTP_Host} ^www\.(.+)$ [NC]
   RewriteRule ^ http%{ENV:protossl}://%1%{REQUEST_URI} [L,R=301]

Ces lignes proviennent de Drupal .htaccess mais cela devrait fonctionner de quelque manière que ce soit.

1
xaa

Dans la RewriteRule que vous avez, vous utilisez %{HTTP_Host} alors que; il devrait s'agir de la partie correspondante de l'instruction précédente RewriteCond:

RewriteCond %{HTTPS} on
RewriteCond %{HTTP_Host} ^www\.(.*)$ [NC]
RewriteRule (.*) http://%1%{REQUEST_URI} [R=301,L]
1
hjpotter92