Wordpress hinter Reverse Path Proxy installieren - wp-admin Loginprobleme vermeiden

Aus Carl-Christian Sautter - Wiki
Wechseln zu: Navigation, Suche

Üblicherweise werden die Seiten URL und die Wordpress URL in der SQL Datenbank oder der Datei wp-config.php definiert. In der Datei wp-config.php würden die Parameter z.B. so aussehen:

define('WP_HOME','http://testblog.domain/');
define('WP_SITEURL','http://testblog.domain/');

Häufig gibt es bei dieser Variante aber Probleme mit dem Backend Login. Um das Backend über die URL der Wordpress Installation erreichen zu können und im Frontend gleichzeitig alle URLs korrekt ausgeben zu können, müssen die Parameter an anderer Stelle definiert werden. Damit nur im Frontend die Parameter WP_HOME und WP_SITEURL gesetzt sind, müssen diese Settings in der Datei index.php eingefügt werden:

<?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);

if(!isset($_GET["preview"])){
        define('WP_HOME','http://testblog.domain/');
        define('WP_SITEURL','http://testblog.domain/');
}
/** Loads the WordPress Environment and Template */
require( dirname( __FILE__ ) . '/wp-blog-header.php' );

Damit bei einem Wordpress Update die Datei index.php nicht automatisch überschrieben wird, sollten die Schreibrechte für diese Datei entfernt werden!

shell# chmod a-w index.php

Bilder und Medien-URLs in Editor richtig ausgeben

Um auch im Wordpress WYSIWYG Editor die korrekten URLs auszugeben müssen zwei weitere Parameter in der Datei wp-config.php definiert werden:

/** Change the Content URL */
define('WP_CONTENT_DIR', $_SERVER['DOCUMENT_ROOT'] . '/wp-content');
define('WP_CONTENT_URL', 'http://testblog.domain/wp-content');