web-dev-qa-db-fra.com

Impossible de modifier (messages à jour)

Pendant quelques jours, j'ai eu du mal à modifier certaines de mes publications. Lorsque j'essaie de modifier le contenu de l'article, j'obtiens une erreur 404 en me redirigeant pour que la page ne soit pas trouvée.

Lors de la recherche sur Google, avec tous les tests de base, cache clair, navigateur, activer/désactiver les plugins, changer les permaliens, etc., je l’ai trouvé sur le forum WP, disant que le ModSecurity d’Apache posait problème:

https://wordpress.org/support/topic/clicking-the-post-draft-button-sometimes-redirects-a-404-not-found-page/

https://wordpress.org/support/topic/404-page-not-found-when-savingupdating-a-postspage/

Cependant, cela ne fonctionne pas pour moi, car je n'ai pas l'option dans Cpanel de désactiver ModSecurity - désactivé de la société d'hébergement.

J'ai cette réponse d'eux:

Mod_sec est une fonctionnalité de sécurité importante au niveau du serveur. Nous n'allons pas désactiver mod_sec.

Certaines publications WordPress (telles que celles qui semblent être des attaques par injection SQL) peuvent déclencher mod_sec, mais ce ne sont certainement pas toutes les publications WordPress.

Y a-t-il une solution pour résoudre ce problème? J'ai un accès SSH, peu limité, mais peut aider.

De plus, je ne suis pas sûr à 100% - mais j'ai remarqué que je peux (ne pas avoir tout testé) mettre à jour mes anciens messages.

Les articles âgés de 5 à 6 mois jettent une erreur 404. La version WP est 4.7.2

MODIFIER

La seule option que je dispose à présent est de faire une sauvegarde du site de production, de charger sur mon locahost, de mettre à jour les publications et de la remettre en production.

Cependant, ce n'est pas du tout pratique. :( Quelqu'un a-t-il une solution?

S'il vous plaît aider! Merci!

2
fugitive

Si vous avez accès à MySQL à distance, cela pourrait vous aider. Je l'ai fait il y a quelque temps quand j'ai eu un autre problème avec mon fournisseur d'hébergement.

Effectuez une sauvegarde complète de vos fichiers WordPress, mais pas de votre base de données. Copiez-les sur votre localhost. Désormais, au lieu d'utiliser une base de données locale, dans votre fichier wp-config.php, définissez votre base de données sur la base de données distante de votre site Web en ligne (effectuez évidemment une sauvegarde en premier).

define('DB_Host', 'YOUR REMOTE DATABASE');

Maintenant, forcez l’installation locale à utiliser l’hôte local comme URL du site et adresse du site, en les définissant dans wp-config.php:

define('WP_SITEURL', 'http://localhost/');

define( 'WP_HOME', 'http://localhost/' );

Désormais, vous pouvez désactiver mod_sec sur votre serveur Web Apache local et mettre à jour vos publications.

PS: Je n'ai pas essayé ceci avec mod_sec, et je ne garantis pas que cela fonctionne pour vous. Je ne sais même pas si cela est officiellement confirmé, mais comme je l'ai fait moi-même et que j'ai travaillé, j'ai envisagé de le partager avec vous (car il était trop long de poster en tant que commentaire). Je ne sais même pas si c'est sécurisé ou non.

Toutefois, soyez averti des URL et des téléchargements codés en dur, car ils risquent de poser un problème si vous essayez de télécharger des fichiers lorsque vous êtes sur localhost. Mais modifier le contenu lui-même ne devrait pas poser de problème.

PS 2 S'il vous plaît soyez doux avec vos votes négatifs. Bien que cela ressemble plus à un projet de science-fiction, mais cela a fonctionné personnellement pour moi, donc je ne peux pas accepter que des gens me disent que cela ne fonctionnera jamais.

2
Jack Johansson

il n'y a pas de solution garantie de ma part, mais quelques points peuvent vous aider à trouver la solution.

1: vérifiez votre fichier .htaccess. et collez-y le code ci-dessous.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

2: vérifiez votre database pour rechercher les erreurs et effectuez un db repair et un table optimization

3: essayez de modifier les autorisations de répertoire et de fichier et modifiez-les en 755, 775 ou même 777 pendant un certain temps. changez également l'autorisation du fichier htaccess en 777 pendant une courte période.

4: revérifiez l’URL de l’écran de post-édition et assurez-vous que l’URL ressemble à celle ci-dessous.

http://yourdomain.com/wp-admin/post.php?post=1&action=edit

post=1 est le post ID et la valeur action doit être égale à edit.

5: Je pense que vous avez déjà modifié la structure de permalien à partir de paramètres, car elle est très simple et fonctionne pour l'interface frontale, mais essayez de la remplacer par Numeric.

6: assurez-vous de ne pas avoir modifié de fichier WordPress ou de nom de fichier principal.

7: WordPress fournit un crochet d’action nommé save_post que vous pouvez utiliser pour tester les données de publication à des fins de clarification. en savoir plus ici

8: enfin, peut-être que l’inversion de la version de base WP vers une version plus ancienne pourrait fonctionner?

3
Anwer AR

Allez dans le panneau d'administration et réinitialisez vos permaliens

0
Vinnie James

En règle générale, la société d'hébergement peut désactiver des règles mod_security spécifiques susceptibles d'affecter votre compte d'hébergement. J'ai déjà rencontré ce problème auparavant, c'est généralement un plugin qui cause le problème.

Essayez de désactiver les plugins et de mettre à jour le post à nouveau?

0
bobbyjoe