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)
Dove dovrebbero i sottodomini reindirizzare a se non https? Al dominio principale o sottodominio con https? –
I sottodomini dovrebbero essere https anziché http. – Ryflex
Hai detto che wp-admin non fa https? ci sono altre regole nel tuo .htaccess che farebbero questo? –