it-swarm.com.de

Wechseln von http zu https und www. zu nicht-www URL

Ich kämpfe hier wirklich mit etwas. Ich versuche, meine Website von www zu ändern. Nicht-www und auch http: // zu https: //

Ich habe die Einstellungen in options-general.php (WordPress-Adresse (URL)undSite-Adresse (URL)aktualisiert. Beide verwenden die Nicht-WWW-Version und jetzt auch https: //.

Ich habe auch die Cookie-Einstellung in wp-config.php aktualisiert:

define( 'COOKIE_DOMAIN', 'mysite.co.uk' );

Ich kann auf den wp-admin gut über https UND die Nicht-www-Version zugreifen. Index.php will mich jedoch in einer Endlosschleife halten und die Homepage neu laden, bis der Browser aufgibt. Ich kann nicht glauben, wie schwer das war!

Hat jemand Vorschläge, was man probieren sollte? Ich habe bis jetzt 3 Stunden damit verbracht, etwas zu tun, was Minuten hätte dauern sollen.

Für das, was es wert ist, habe ich ALLE Plugins deaktiviert (falls es eines von ihnen war, das komisch ist), aber es funktioniert trotzdem nicht.

Es ist wahrscheinlich erwähnenswert, dass dieses hat ein WP Problem sein muss, da das Editieren von index.php gut funktioniert, wenn ich es einfach reinstelle:

<?php
/**
 * Front to the WordPress application. This file doesn't do anything, but loads
 * wp-blog-header.php which does and tells WordPress to load the theme.
 *
 * @package WordPress
 */

/**
 * Tells WordPress to load the WordPress theme and output it.
 *
 * @var bool
 */
define('WP_USE_THEMES', true);

echo header();
echo "FOO";

UPDATE:Interessanterweise dachte ich, ich würde einfach den Code durchgehen und versuchen, herauszufinden, wo es schief geht. Es gelangt zu /wp-includes/template-loader.php und dann hier in die Schleife:

do_action( 'template_redirect' );

... Ich weiß nicht, wo es danach geht? (um mehr zu testen und zu debuggen)

UPDATE 2:Ich habe gerade dieses Plugin installiert: https://wordpress.org/support/plugin/debug-wp-redirect/ . Es ist super alt, aber es hat mir gezeigt, woher die Weiterleitung kommt:

Debug WP Redirect
Location: https://mysite.co.uk/
Status: 301
Backtrace:

    File: /home/rachel/web/mysite.co.uk/public_html/wp-includes/class-wp-hook.php
    Line: #298
    Function: redirect_canonical
    Arguments:

    array(1) {
      [0]=>
      string(27) "http://mysite.co.uk/"
    }

Ich weiß nur nicht, warum es fehlschlägt (und indem ich hier http anstelle von https verwende, woher die Schleife wohl kommt)

UPDATE 3:Ich weiß nicht warum, aber das passiert NUR auf der Homepage!

http://www.foo.co.uk/wires-eyewear/
http://foo.co.uk/wires-eyewear/
https://www.foo.co.uk/wires-eyewear/
https://foo.co.uk/wires-eyewear/

Alles funktioniert gut. Aber:

http://www.foo.co.uk
http://foo.co.uk
https://foo.co.uk/
http://foo.co.uk

... alle bleiben in einer Endlosschleife stecken. Äh, das ist so frustrierend!

UPDATE 4:Ich habe es geschafft, einen Stack-Trace zu erhalten, verstehe aber nicht, was los ist.

PHP message:            File: /home/rachel/web/ladympresents.co.uk/public_html/wp-includes/class-wp-hook.php

PHP message:            Line: #298

PHP message:            Function: debug_wp_redirect

PHP message:            Arguments:



PHP message: array(2) {
  [0]=>
  string(28) "https://ladympresents.co.uk/"
  [1]=>
  int(301)
}

PHP message:
PHP message:            File: /home/rachel/web/ladympresents.co.uk/public_html/wp-includes/plugin.php

PHP message:            Line: #203

PHP message:            Class: #WP_Hook

PHP message:            Function: apply_filters

PHP message:            Arguments:



PHP message: array(2) {
  [0]=>
  string(28) "https://ladympresents.co.uk/"
  [1]=>
  array(2) {
    [0]=>
    string(28) "https://ladympresents.co.uk/"
    [1]=>
    int(301)
  }
}

PHP message:
PHP message:            File: /home/rachel/web/ladympresents.co.uk/public_html/wp-includes/pluggable.php

PHP message:            Line: #1181

PHP message:            Function: apply_filters

PHP message:            Arguments:



PHP message: array(3) {
  [0]=>
  string(11) "wp_redirect"
  [1]=>
  string(28) "https://ladympresents.co.uk/"
  [2]=>
  int(301)
}

PHP message:
PHP message:            File: /home/rachel/web/ladympresents.co.uk/public_html/wp-includes/canonical.php

PHP message:            Line: #516

PHP message:            Function: wp_redirect

PHP message:            Arguments:



PHP message: array(2) {
  [0]=>
  string(28) "https://ladympresents.co.uk/"
  [1]=>
  int(301)
}

PHP message:
PHP message:            File: /home/rachel/web/ladympresents.co.uk/public_html/wp-includes/class-wp-hook.php

PHP message:            Line: #298

PHP message:            Function: redirect_canonical

PHP message:            Arguments:



PHP message: array(1) {
  [0]=>
  string(31) "http://www.ladympresents.co.uk/"
}

PHP message:
PHP message:            File: /home/rachel/web/ladympresents.co.uk/public_html/wp-includes/class-wp-hook.php

PHP message:            Line: #323

PHP message:            Class: #WP_Hook

PHP message:            Function: apply_filters

PHP message:            Arguments:

Ich denke das ist jetzt mehr und Problem mit dem www. aus der URL entfernt werden. Ich verstehe nur nicht warum. Ich habe jedes einzelne Plugin deaktiviert, die DB wurde vollständig migriert (ich habe sogar versucht, die DB mit einem Plugin zu suchen und zu ersetzen und die alte URL durch die neue zu ersetzen), und trotzdem funktioniert die Homepage nicht mehr! Es gibt entweder einen großen Fehler, über den ich gestolpert bin, oder etwas anderes im Spiel. Dies ist der Teil, der mich verblüfft:

PHP message:
PHP message:            File: /home/rachel/web/ladympresents.co.uk/public_html/wp-includes/class-wp-hook.php

PHP message:            Line: #298

PHP message:            Function: redirect_canonical

PHP message:            Arguments:
PHP message: array(1) {
  [0]=>
  string(31) "http://www.ladympresents.co.uk/"
}

Die URLs sind bis zu diesem Teil perfekt, und dann ändert es sie zufällig zurück in nicht nur http://, sondern fügt auch das www.-Bit wieder hinzu!

UPDATE 4:Die Handlung verdickt sich also! Es stellt sich nun heraus, dass das Problem bei der Verwendung einer benutzerdefinierten Seite für die Homepage besteht!

Wenn ich die AnzeigeTitelseitein "Titelseite" ändere (anstelle von "Eine statische Seite (unten auswählen)", dann funktioniert es ... aber offensichtlich habe ich eine müllsuchende Homepage, auf der wir nichts brauchen. Ich habe dies mit verschiedenen Themen getestet, und alle haben das gleiche Problem. ARGH!

1
Andrew Newby

Fügen Sie Ihrem .htaccess Folgendes hinzu.

# force https on the front of the site
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]

ref https://stackoverflow.com/questions/4398951/force-ssl-https-using-htaccess-and-mod-rewrite

wenn auf Nginx der Rat für das folgende ist ..

server {
listen 80;
server_name yoursite.com www.yoursite.com;
return 301 https://yoursite.com$request_uri;
}

siehe http://www.wpbeginner.com/wp-tutorials/how-to-add-ssl-and-https-in-wordpress/

für andere Bereiche, wie z. B. die Websiteeinstellungen, werden Änderungen für https vorgenommen.

1
Justin