web-dev-qa-db-fra.com

Certaines pages d'administration redirigeant vers la page d'accueil lors de l'enregistrement

Je développais un site WordPress localement, tout se passait bien. J'ai configuré un site de prévisualisation sur un VPS I control. Le compte a le dernier domaine, j'ai ajouté un sous-domaine et configuré le site sur ce sous-domaine.

À ce stade, la plupart les choses fonctionnent. Je peux naviguer sur le devant du site. Dans le backend, les choses se gâtent. Plusieurs actions de l'administrateur forcent une redirection vers la page d'accueil du site. Par exemple, si j'essaie de sauvegarder des permaliens avec autre chose que "Plain". Quels que soient les paramètres de permaliens, si je vais dans Apparence-> Menus et que je tente de sauvegarder, la redirection vers la page d'accueil. Si j'essaye de mettre à jour un plugin en utilisant de jolies mises à jour (via ajax), il dit qu'il est erroné et que la sortie produite est le balisage de la page d'accueil.

Ce n'était pas (et n'est toujours pas) un problème sur la copie locale. J'ai désactivé tous les plugins et échangé le thème en 2017. Pas de dés. WP-CLI trouver/remplacer sur la base de données, tout est allé carré. La dernière mise en garde est que je garde les fichiers de base dans un sous-répertoire (wp), ce qui signifie que le index.php dans la racine de mon site fait ceci:

require( dirname( __FILE__ ) . '/wp/wp-blog-header.php' );

Et dans wp-config.php je dois définir explicitement:

define('WP_CONTENT_DIR', dirname(__FILE__).'/wp-content'); define('WP_CONTENT_URL', 'http://preview.mysite.com'.'/wp-content');

Cela l'empêche de rechercher wp-content dans le même répertoire que les fichiers de base. J'ai utilisé cette configuration plusieurs fois sans aucun problème. J'ai un autre site WordPress sur ce VPS utilisant la même configuration, mais pas de sous-domaine, cela fonctionne bien. J'ai tout abandonné et j'ai démarré sans succès.

Quelqu'un a déjà vu quelque chose comme ça?

wp-config.php:

<?php
/**
 * The base configuration for WordPress
 *
 * The wp-config.php creation script uses this file during the
 * installation. You don't have to use the web site, you can
 * copy this file to "wp-config.php" and fill in the values.
 *
 * This file contains the following configurations:
 *
 * * MySQL settings
 * * Secret keys
 * * Database table prefix
 * * ABSPATH
 *
 * @link https://codex.wordpress.org/Editing_wp-config.php
 *
 * @package WordPress
 */

// ** MySQL settings - You can get this info from your web Host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'databasehere');

/** MySQL database username */
define('DB_USER', 'userhere');

/** MySQL database password */
define('DB_PASSWORD', 'passwordhere');

/** MySQL hostname */
define('DB_Host', 'localhost');

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');

/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');

/**#@+
 * Authentication Unique Keys and Salts.
 *
 * Change these to different unique phrases!
 * You can generate these using the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}
 * You can change these at any point in time to invalidate all existing cookies. This will force all users to have to log in again.
 *
 * @since 2.6.0
 */


// salts defined properly here

/**#@-*/

/**
 * WordPress Database Table prefix.
 *
 * You can have multiple installations in one database if you give each
 * a unique prefix. Only numbers, letters, and underscores please!
 */
$table_prefix  = 'wp_';

/**
 * For developers: WordPress debugging mode.
 *
 * Change this to true to enable the display of notices during development.
 * It is strongly recommended that plugin and theme developers use WP_DEBUG
 * in their development environments.


*
 * For information on other constants that can be used for debugging,
 * visit the Codex.
 *
 * @link https://codex.wordpress.org/Debugging_in_WordPress
 */
define('WP_DEBUG', false);
define('WP_CONTENT_DIR', dirname(__FILE__).'/wp-content');

        define('WP_CONTENT_URL', 'http://preview.url.com'.'/wp-content');

define( 'WP_HOME', 'http://' . $_SERVER['SERVER_NAME'] );
define( 'WP_SITEURL', WP_HOME . '/wp' );
/* That's all, stop editing! Happy blogging. */

/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
    define('ABSPATH', dirname(__FILE__) . '/');

/** Sets up WordPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');

Et la structure du répertoire:

- preview
  - .git
  - .gitignore
  - .htaccess
  - composer.json
  - composer.lock
  - index.php
  - readme.md
  - vendor/
  - wp/
    - license.txt
    - readme.html
    - wp-activate.php
    - wp-admin
    - wp-includes
    - and all the other usual root files
  - wp-config.php
  - wp-content/ <-- has what you would expect: plugins, themes, uploads...
1
Ethan C

Les problèmes étaient dus aux règles OWASP ModSecurity activées sur le serveur et provoquant des faux positifs. Désactivé, résolu. Pas un nouveau problème . Également répondu ici .

0
Ethan C