2014-09-13 3 views
1

Je veux rediriger toutes les conditions suivanteshtaccess et regex pour plusieurs styles réoriente

example.com 
http://example.com 
https://example.com 
http://www.example.com 

à

https://www.example.com 

J'ai ceci:

RewriteEngine on 
RewriteCond %{HTTPS} off 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 
RewriteRule ^/(.*):SSL$ https://%{SERVER_NAME}/$1 [R,L] 


Options +FollowSymlinks 
RewriteCond %{HTTP_HOST} !^www.example.com 
RewriteRule ^(.*)$ https://www.example.com/$1 [R=permanent,L] 

Ces deux ci-dessous sont fonctionnant,

http://www.example.com 
https://example.com 

mais le dernier apparaît comme:

https://www.example.com/https://example.com/ 

Comment puis-je corriger cela pour les trois redirigent correctement https://www.example.com

Merci pour votre aide.

Répondre

1

Tout ce que vous voulez peut être fait dans une seule règle comme ceci:

RewriteEngine on 

RewriteCond %{HTTPS} off [OR] 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteRule^https://www.example.com%{REQUEST_URI} [L,NE,R=301] 

Assurez-vous que c'est la première règle dans votre .htaccess racine.

+1

OUI! Merci, vous avez claqué la première fois hors de la boîte.Le jour de cauchemar que je vais avoir est beaucoup mieux pour votre aide. – AllThisOnAnACER

+0

Vous êtes le bienvenu, heureux que cela ait fonctionné, passez un bon moment de la journée. – anubhava

0
^(?:.*?:)?(?:\/\/)?(?:.*?\.)?(.*?\.)(.*)$ 

Essayez this.Replace par

https://www.$1$2

Voir la démo.

http://regex101.com/r/lU7jH1/6

+0

merci pour cela. Euh, puisque rien de tout cela ne ressemble à mon code original, où voulez-vous que je colle ça? :-) De la démo, on dirait exactement ce dont j'ai besoin mais je ne veux pas faire trop d'erreurs dans mon fichier .htaccess. Pourriez-vous s'il vous plaît être plus précis en utilisant mon code original comme un début? – AllThisOnAnACER

+0

Pourquoi le vote à la baisse? – AllThisOnAnACER

+0

Tout simplement parce que regex est capable de faire correspondre les URLs donnés ne signifie pas que cette regex fonctionnera aussi pour 'mod_rewrite'. – anubhava