Reindirizza tutte le richieste http: // a https: //


22

In precedenza ho pubblicato questa domanda: /programming/36104047/how-to-redirect-all-http-requests-to-https-on-magento ma non ho avuto alcuna reazione.

Ecco l'URL del mio sito: www.trendy-mode.nl ti reindirizzerà a: https://www.trendy-mode.nl/

Ora il problema è il collegamento al menu o qualsiasi altro collegamento secondario non viene reindirizzato con https://

EX:
è presente un menu simile a - NIEUW | KLEDING | SCHOENEN | ACCESSORI ecc.
Se si fa clic sul menu NIEUW, verrà aperta una nuova pagina ma non reindirizzata conhttps://

Ho provato molte modifiche .htaccess ma non funziona. Qualcuno qui per aiutarmi in questo?

Grazie in anticipo!

Risposte:


30

La modifica dell'URL di base non sicuro in https cambierà tutti i collegamenti e reindirizzerà le richieste non https a https://example.com/ (la pagina iniziale), perché è ciò che fa Magento quando la convalida dell'URL di base non riesce.

Quindi questo è un buon inizio ma per reindirizzare anche http://example.com/foo/ su https://example.com/foo/ è necessario farlo tramite il reindirizzamento del server web.

Ad esempio, aggiungi il seguente codice nella parte superiore del tuo .htaccess:

RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

O se usi un proxy inverso come Varnish:

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

Questo perché le richieste da Varnish a Magento saranno senza SSL (HTTP), ma Varnish imposta l'intestazione X-Forwarded-Proto su "https" se la richiesta originale è stata fatta con SSL (HTTPS).


@Abhishek Ho appena testato il tuo sito e poiché non funziona ancora - le istruzioni di Fabians sopra sono corrette .. ma dovrei anche dire che queste 2 righe dovrebbero essere aggiunte al file .htaccess nella radice dell'installazione di Magento ma NON all'inizio (generalmente ) ma come indicato di seguito, subito dopo RewriteEngine On. Il modo in cui l'ho fatto è leggermente diverso in quanto legge la mia seconda riga; RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Peter Svegrup,

Qualcuno ha avuto effetti negativi sul posizionamento delle pagine di Google dopo aver spostato un sito magento completamente su https?
paj

10

Per completezza facciamo anche una cosa molto simile a ciò che fschmengler ha suggerito con alcune aggiunte;

RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_METHOD} !=POST
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Inseriamo questo nella sezione dell'htaccess appena sotto RewriteEngine On


9

Imposta l'URL di base per sicuro e non sicuro nel back-end. Impostare Sì su Usa URL protetto in frontend nel backend.

Quindi modifica la tua app / etc / local.xml e includila

<?xml version="1.0"?>
<config>
  <frontend>
     <secure_url>
      <all>/</all>
     </secure_url>
   </frontend>
</config>

O almeno incollare il front-end dell'albero XML e scendere tra i tag di configurazione.


Questo risolto il mio problema. Avevo corretto tutto, ma alcuni URL stavano ancora usando http invece di https.
mutiemule,

voglio reindirizzare l'URL specifico da HTTPS a http. quindi ne hai idea?
Sarfaraj Sipai,

5

Assicurati System > Configuration > Web > url_options > "Auto-redirect to Base URL = No". È stato impostato su yese causa il problema.

Inserisci il codice seguente nel file .htaccess.

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

4

Penso che il modo più semplice sarebbe quello di cambiare l'URL di base non sicuro in https poiché magento reindirizza quindi tutte le richieste "non sicure" a questo url e genera anche i collegamenti con questo url.

puoi cambiare l'URL di base in sistema -> configurazione -> generale -> web


Grazie per il tuo replay .. l'ho fatto ma ora se apri questo link: www.trendy-mode.nl/damesschoenen/slippers ti passerà alla homepage. hai qualche soluzione?
Abhishek Kumbhani,

hm questo è strano :) Ti dispiaceva la barra finale nell'URL di base? Penso che questa questione sia davvero interessante in quanto sarà molto probabilmente molto rilevante in futuro (o forse già adesso?) Avere l'intera pagina usando https. Domani posso chiedere al mio collega poiché lo ha già fatto per un negozio di magento
David Verholen,

anche se penso che la soluzione di fschmengler dovrebbe funzionare, la risposta di @Michael sembra il modo giusto per farlo se funziona
David Verholen

Beh, la risposta di fschmenglers non è falsa. Sono solo infastidito dalla strategia di aggiornamento di Magentos in quanto tocca .htaccess e index.php ma non local.xml. Quindi è più imho 'aggiornamento salva'
Michael

2

I documenti Apache sconsigliano di usare una riscrittura:

Per reindirizzare gli httpURL a https, procedi come segue:

 <VirtualHost *:80>
     ServerName www.example.com
     Redirect / https://www.example.com/
 </VirtualHost>

 <VirtualHost *:443>
     ServerName www.example.com
     # ... SSL configuration goes here
 </VirtualHost>

Questo frammento dovrebbe andare nel file di configurazione del server principale, non in .htaccessquello richiesto nella domanda.

Questo articolo potrebbe essere uscito solo dopo che la domanda è stata posta e la risposta, ma sembra essere l'attuale modo di procedere.


0

Aggiungi questo codice nella parte superiore del file .htaccess

RewriteEngine On
RewriteCond %{HTTPS} off
# First rewrite to HTTPS:
# Don't put www. here. If it is already there it will be included, if not
# the subsequent rule will catch it.
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Now, rewrite any request to the wrong domain to use www.
# [NC] is a case-insensitive match
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.