Devi modificare tre file..
# Discorso logico che consiglia quale sia giusto applicare tale modifica, puoi saltare questa istruzione.
Se abbiamo solo https esterni (cioè che provengono dal di fuori del nostro spazio web) dove un header indica che stiamo usando una versione sicura ne consegue che dal nostro spazio web dobbiamo consentire la creazione di tale header solo da chi ci fornisce l'https..
# Codice in azione
wp-includes/load.php
Modificare la funzione is_ssl() in questo modo.
Codice PHP:
/**
* Determines if SSL is used.
*
* @since 2.6.0
* @since 4.6.0 Moved from functions.php to load.php.
*
* @return bool True if SSL, otherwise false.
*/
function is_ssl() {
if ( empty($_SERVER['SERVER_PORT'])) {
$_SERVER['SERVER_PORT'] = 80;
}
if ( !empty( $_SERVER['HTTPS'] ) ) {
if ( !'on' == strtolower( $_SERVER['HTTPS'] ) ) {
if ( 1 == $_SERVER['HTTPS'] ) {
} else {
$_SERVER['HTTPS'] = 0;
}
}
}
if ( empty($_SERVER['HTTPS']) && !'443' == $_SERVER['SERVER_PORT'] ) {
if ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' ) {
if ( strpos( $_SERVER['REQUEST_URI'], 'http://' ) === 0 ) {
$_SERVER['REQUEST_URI'] = 'https://'.substr( $_SERVER['REQUEST_URI'],7 );
}
} else {
return false;
}
}
$_SERVER['HTTPS'] = 'on';
if ( $_SERVER['SERVER_PORT'] == 80 ) {
$_SERVER['SERVER_PORT'] = 443;
}
return true;
}
Modificare il file wp-config.php queste costanti avranno la precedenza rispetto le url memorizzate nella base dati
Codice PHP:
define('ALTERNATE_WP_CRON', true);
/* SSL */
$d_scheme = 'http://';
$d_force = false;
if(isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {
$d_scheme = 'https://';
}
/* DINAMIC DOMAIN */
define('WP_HOME',$d_scheme.$_SERVER['HTTP_HOST'].'/cartella');
define('WP_SITEURL',$d_scheme.$_SERVER['HTTP_HOST'].'/cartella');
/* END DINAMIC DOMAIN */
unset($d_scheme);
/* END SSL */
/* Finito, interrompere le modifiche! Buon blogging. */
/* modifica */
$_SERVER['DOCUMENT_ROOT'] = "/membri/nick";
$_ENV['DOCUMENT_ROOT'] = "/membri/nick";
/* fine */
Ricordo che il primo slash dopo il dominio indica la root principale del sito (cartella principale).. Nel define non va inserita la slash finale
Codice:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /cartella/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /cartella/index.php [L]
RewriteCond %{HTTP:X-Forwarded-Proto} ^http$
RewriteRule .* https://nick.altervista.org%{REQUEST_URI} [L,R=301]
</IfModule>
SetEnv AV_WP_SKIP_XMLRPC off
# END WordPress
Come si può notare ho fatto in modo che se per qualunque motivo si disattivasse CloudFlare non si dovrebbe restare fuori da wordpress.. Ho anche inserito il cron con la sintassi che usa altervista e tolgo il blocco del file xmlrpc.php con .htaccess..
Ciao a tutti :)