2015-12-21 16 views
5

Sto riscontrando alcuni problemi con più installazioni wordpress e .htaccess regole di riscrittura, principalmente per forzare https ma anche rimuovere www. da qualsiasi dominioForza non WWW ma forza https su tutto il wordpress e sull'intero dominio

Domini/sottodomini:

  • Wordpress 1: examplewebsite.com (/home/hostingacc/public_html/)
  • Wordpress 2: test.examplewebsite.com (/home/hostingacc/public_html/test/)
  • Wordpress 3: moretests.examplewebsite.com (/home/hostingacc/public_html/moretests)

.htaccess riscrive

Ho cercato di utilizzare diverse regole di riscrittura che ho trovato su Internet, non è sicuro che uno è il migliore da utilizzare, ma sotto ci sono le principali regole di riscrittura che ho usato

RewriteEngine On 
RewriteCond %{HTTP_HOST}#%{HTTPS}s ^www\.([^#]+)#(?:off|on(s)) [NC] 
RewriteRule^http%2://%1%{REQUEST_URI} [R=301,L] 

che ho ricevuto da https://github.com/h5bp/server-configs-apache/issues/48 ma come detto in precedenza, uno di questi può essere più adatto per essere forzatura HTTPS e FORZA RIMOZIONE WWW

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 [OR] 
RewriteCond %{HTTP_HOST} ^www.examplewebsite.com 
RewriteRule ^(.*)$ https://examplewebsite.com/$1 [L,R=301] 

o

RewriteEngine On 
RewriteCond %{HTTPS} !=on [OR] 
RewriteCond %{HTTP_HOST} !^examplewebsite\.com$ [NC] 
RewriteRule^https://examplewebsite.com%{REQUEST_URI} [R=301,L] 

o

RewriteEngine On 
RewriteCond %{HTTPS} !=on 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
RewriteCond %{HTTP_HOST} ^www*\.(.*examplewebsite\.com)$ [NC] 
RewriteRule^https://%1%{REQUEST_URI} [R=301,L] 

o

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^www*\.(.*examplewebsite\.com)$ [NC] 
RewriteRule^https://%1%{REQUEST_URI} [R=301,L] 
RewriteCond %{HTTPS} !=on 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

Tutte le regole di cui sopra, sembrano funzionare per quanto riguarda costringendo https e la rimozione www sulla installazione di WordPress principale, ma le regole non si applicano attualmente alla sottodomini o /wp-admin/ sottodirectory per ciascuna delle installazioni wordpress, presumo che sia perché c'è un file .htaccess in ciascuna di queste directory.

Problema Recap

  • examplewebsite.com (sito principale) sia correttamente costretto a utilizza sempre https ed è anche costretto a rimuovere www. MA ... il problema si trova su examplewebsite.com/wp-admin/ che impone ancora correttamente https (o dalla regola o tramite il wp-config.php force admin ssl ma non rimuove forzatamente il www. Per alcuni ragione, immagino sia perché ho il seguente file .htaccess che si trova sotto la cartella/wp-admin/così sembra che mi serve una regola per l'htaccess in questa cartella per rimuovere forzatamente www. e per forzare anche https.

  • test.examplewebsite.com e moretests.examplewebsite.com (sottodomini) entrambi hanno un problema dove non sta costringendo https ed è, inoltre, non con forza la rimozione www.

  • test.examplewebsite.com e moretests.examplewebsite. com (sottodomini) hanno entrambi lo stesso problema del primo/wp-admin/does non rimuovere con forza il www.

  • Se vado nelle impostazioni o SQL per i miei sottodomini o anche modificare il wp-config.php per sovrascrivere l'SQL e modificare l'url del sito e l'URL di casa per avere https e non avere www.(L'https causa questo problema), allora gli impianti wordpress diventano inacessable, svaniscono e visitando i link per i sottodomini redirect/carica il sito principale invece

Configurazioni

  • examplewebsite.com - attuale. htaccess

casa:http://pastebin.com/raw/9RNuQZS5
WP Admin:http://pastebin.com/raw/8vVnDTRx

  • examplewebsite.com - variabili SQL

URL del sito (Home):https://www.examplewebsite.com
Wordpress URL:https://www.examplewebsite.com

  • examplewebsite.com - WP Config (Sostituisce SQL)

Config:

define('FORCE_SSL_ADMIN', true); 
define('FORCE_SSL_LOGIN', true); 

define('WP_HOME','https://examplewebsite.com'); 
define('WP_SITEURL','https://examplewebsite.com'); 
define('DOMAIN_CURRENT_SITE', 'examplewebsite.com'); 
define('COOKIE_DOMAIN', 'examplewebsite.com'); 
define('ADMIN_COOKIE_PATH', '/wp-admin/'); 
  • test.examplewebsite.com e moretests.examplewebsite.com

I sottodomini sono tutti i setup come sotto, tuttavia il wp-config non viene applicata al momento perché il https forzato sta causando numero 4.

I file .htaccess sono identici al 99% a quelli sulla principale dominio/sito con la sola eccezione di che non v'è alcun codice personalizzato WP riscrivere ciclo regole (redirect da www a non www e reindirizzamento HTTP a https)

  • test.examplewebsite. com e moretests.examplewebsite.com - variabili SQL

URL del sito (Home):http://test.examplewebsite.com
Wordpress URL:http://test.examplewebsite.com

  • test.examplewebsite.com e moretests.esempiowebsite.com - WP Config (override di SQL)

Config:

define('FORCE_SSL_ADMIN', true); 
define('FORCE_SSL_LOGIN', true); 

define('WP_HOME','https://test.examplewebsite.com'); 
define('WP_SITEURL','https://test.examplewebsite.com'); 
define('DOMAIN_CURRENT_SITE', 'test.examplewebsite.com'); 
define('COOKIE_DOMAIN', 'test.examplewebsite.com'); 
define('ADMIN_COOKIE_PATH', '/wp-admin/'); 

Impostazione quanto sopra, fa sì che lo stesso problema come il cambiamento SQL (numero 4)

+0

Dove dovrebbero i sottodomini reindirizzare a se non https? Al dominio principale o sottodominio con https? –

+0

I sottodomini dovrebbero essere https anziché http. – Ryflex

+0

Hai detto che wp-admin non fa https? ci sono altre regole nel tuo .htaccess che farebbero questo? –

risposta

0

procedura per verificare (I solo illustrare per un sito): risultato

  1. ping www.examplewebsite.com previsto: si dovrebbe vedere ip indirizzo del vostro sito
  2. risultato atteso
  3. ping examplewebsite.com: si dovrebbe vedere l'indirizzo IP del vostro sito
  4. Sfoglia per https://examplewebsite.com per assicurarsi che si può broswe la sito
  5. aggiungere il follow come l'inizio di il codice personalizzato WP REWRITE LOOP START nel vostro .htaccess root:

    # CUSTOM CODE WP REWRITE LOOP START 
    # WP REWRITE LOOP START 
    RewriteEngine On 
    RewriteCond %{SERVER_PORT} 80 
    RewriteRule ^(.*)$ https://examplewebsite.com/$1 [R,L] 
    RewriteBase/
    RewriteRule ^index\.php$ - [L] 
    
    quanto sopra

    è quello di garantire reindirizzare tutti gli accessi non SSL per l'accesso SSL mentre rinominare tutti gli accessi non SSL a sito per examplewebsite.com, ora si dovrebbe essere reindirizzato al https://examplewebsite.com se si digita http://www.examplewebsite.com o http://examplewebsite.com nel navigatore

  6. l'ultima parte è avere il file wp-config.php per includere la seguente:

    define('WP_HOME','https://examplewebsite.com'); 
    define('WP_SITEURL','https://examplewebsite.com'); 
    define('DOMAIN_CURRENT_SITE', 'examplewebsite.com'); 
    define('COOKIE_DOMAIN', 'examplewebsite.com'); 
    define('ADMIN_COOKIE_PATH', '/wp-admin/'); 
    

    questa parte è quello di garantire anche l'accesso SSL per il vostro www.examplewebsite.com ottiene riscritto per examplewebsite.com da wordpress

perché avete sito pieno abilitato come solo l'accesso SSL, in modo che il seguente non è necessario nel file wp-config.php:

define('FORCE_SSL_ADMIN', true); 
define('FORCE_SSL_LOGIN', true); 
+0

Per quanto riguarda 1 e 2, mostrano l'IP del mio server. Riguardo a 3, sì, il mio sito normale si carica ... Per quanto riguarda 4, ho dato diversi esempi di lavoro di forzare ssl e rimuovere www e funzionano tutti, ma non risolve il problema. Ri 5, includo già ciò come menzionato nel mio post originale. Per quanto riguarda il tuo punto minore alla fine, con o senza non fa alcuna differenza. – Ryflex

+0

@Ryflex numero 3 è il problema più importante, è necessario avere accesso al sito con https, altrimenti significa che non ha accesso ssl! – Allen

+0

Sì, ho detto che il sito si carica normalmente. I miei certificati SSL vanno bene e funzionano. – Ryflex

Problemi correlati