2014-07-02 7 views
1

Je suis un débutant quand il s'agit de faire des choses avec htaccess alors s'il vous plaît soyez patient avec ma question stupide. Je sais que cela a été beaucoup traité (here, here et here par exemple) mais cela ne semble pas fonctionner pour ma situation. Mon navigateur affiche une « redirection boucle » erreur avec ce code dans mon fichier htaccess:htaccess Rediriger tout le trafic vers https

<IfModule mod_rewrite.c> 
    <IfModule mod_negotiation.c> 
     Options -MultiViews 
    </IfModule> 

    RewriteEngine On 

    # Redirect Trailing Slashes... 
    RewriteRule ^(.*)/$ /$1 [L,R=301] 

    # Handle Front Controller... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule^index.php [L] 

    # Trying to redirect to https 
    RewriteCond %{HTTPS} off 
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 
</IfModule> 

Je sais que cela a probablement quelque chose à voir avec le RewriteCond et RewriteRule avant que je rediriger vers https, mais je ne le font pas Je sais vraiment ce que je fais ici et je ne sais pas quoi changer.

Mise à jour:

Un peu plus d'informations qui pourraient être utiles:

  1. Lorsque je supprime le code "rediriger vers https" et tapez manuellement https://my.site.com il charge très bien.
  2. En outre, la redirection vers https chose a fonctionné très bien avant que j'ai accidentellement supprimé le fichier .htaccess dans mon répertoire.
  3. L'application que j'essaie de rediriger réside dans un sous-dossier d'une autre application qui a également un fichier .htaccess. Voici le code de cette application:

    <IfModule mod_rewrite.c> RewriteEngine On RewriteBase/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] RewriteEngine On </IfModule>

C'est ce que Firebug dit: 1st screenshot2nd screenshot

Répondre

1

Modifier l'ordre de vos règles et de garder 301 règles avant une autre règle de réécriture interne:

<IfModule mod_rewrite.c> 
    <IfModule mod_negotiation.c> 
     Options -MultiViews 
    </IfModule> 

    RewriteEngine On 

    # Redirect Trailing Slashes... 
    RewriteRule ^(.*)/$ /$1 [L,R=301] 

    # Trying to redirect to https 
    RewriteCond %{HTTPS} off 
    RewriteCond %{SERVER_PORT} !=443 
    RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,NE,R=301] 

    # Handle Front Controller... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule^index.php [L] 

</IfModule> 
+0

Toujours obtenir "Cette page Web a une boucle de redirection" – sterfry68

+0

Test dans un autre navigateur. – anubhava

+0

Juste testé dans Firefox et a reçu un message similaire: "Firefox a détecté que le serveur redirige la demande pour cette adresse d'une manière qui ne se terminera jamais." – sterfry68

Questions connexes