数日間、私は私の投稿のいくつかを修正することに関する問題を経験している。投稿の内容を変更しようとすると404エラーが発生し、そのページが見つからないことをリダイレクトします。
すべての基本的なテスト、キャッシュのクリア、ブラウザ、プラグインの有効化/無効化、パーマリンクの変更などでGoogleの調査を行っているところ、WPフォーラムで、ApacheのModSecurityと言っています。が問題を引き起こしています:
https://wordpress.org/support/topic/404-page-not-found-when-savingupdating-a-postspage/
しかし、Cpanelではホスティング会社から無効にするModSecurity - を無効にするオプションを選択していないため、これは私にとってはうまくいきません。
私は彼らからこの返事をもらった。
Mod_secは重要なサーバーレベルのセキュリティ機能です。 mod_secを無効にするつもりはありません。
特定のWordPress投稿(SQLインジェクション攻撃のように見える投稿など)はmod_secをトリガーする可能性がありますが、確かにすべてのWordPress投稿ではありません。
これを解決するための回避策はありますか?私はSSHアクセスを持っています。
また、私は100%確信があるわけではありません - しかし私は私が私の古い記事を更新することができることに気付きました。
5〜6メートル前の投稿では404
エラーが発生しています。 WPバージョンは4.7.2
です
編集
私が今持っている唯一のオプションは、本番サイトのバックアップを作成し、私のlocahostにロードし、投稿を更新し、それを本番にプッシュバックすることです。
しかし、これはまったく便利ではありません。誰もが解決策を持っていますか?
助けてください!ありがとうございます。
リモートのMySQLにアクセスできる場合は、これが役立ちます。私は私のホスティングプロバイダに別の問題があったときに私はしばらく前にこれをやった。
データベースではなく、WordPressファイルのフルバックアップを取ります。それらをあなたのローカルホストにコピーしてください。 wp-config.php
ファイルで、ローカルデータベースを使用するのではなく、データベースをオンラインWebサイトのリモートデータベースに設定します(明らかに最初にバックアップを作成します)。
define('DB_Host', 'YOUR REMOTE DATABASE');
それでは、これらをwp-config.php
で定義して、ローカルインストールでローカルURLをサイトURLとサイトアドレスとして使用するように強制します。
define('WP_SITEURL', 'http://localhost/');
define( 'WP_HOME', 'http://localhost/' );
これで、ローカルのApache Webサーバーでmod_sec
を無効にして投稿を更新することができます。
PS: /私はこれをmod_sec
で試していなかった、そして私はこれがあなたのために働くことを保証しない。これが正式に確認されたかどうかさえわかりませんが、私はこれを自分で行って作業したので、それをあなたと共有することを考えました(コメントとして投稿するには長すぎたので)。安全かどうかさえわかりません。
ただし、ハードコードされたURLとアップロードについては注意してください。localhostでファイルをアップロードしようとすると、これらが問題を引き起こす可能性があるためです。しかし、コンテンツ自体を変更しても問題は発生しません。
PS 2 あなたのマイナス投票に気をつけてください。それはよりサイエンスフィクションのプロジェクトのように見えるかもしれませんが、それは個人的に私のために働いたので、私はこれが決してうまくいかないと私に言う人を受け入れることができません。
私からの保証された解決策はありませんが、いくつかのポイントが解決策に向かってあなたを助けるかもしれません。
1:.htaccess
ファイルを再確認してください。その下にコードを貼り付けます。
# 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:database
でエラーをチェックし、db repair
とtable optimization
を実行してください
3:ディレクトリとファイルのパーミッションを変更し、しばらくの間755
、775
、さらには777
に変更してみてください。また、htaccess
ファイルのアクセス権を777
に少しの間変更してください。
4:投稿編集画面のURLを再確認し、URLが以下のようになっていることを確認してください。
http://yourdomain.com/wp-admin/post.php?post=1&action=edit
post=1
はpost ID
で、action
の値はedit
と等しくなければなりません。
5:パーマリンクの構造は設定から変更されたと思います。それはとても基本的なことでフロントエンドのために働きますが、それらをNumeric
に変更してみてください。
6:WordPressのコアファイルやファイル名を変更していないことを確認してください。
7:WordPressはsave_post
という名前のアクションフックを提供しています。これを使用して投稿データを明確にすることができます。もっと調べる ここ
8:最後に、コアの[WP]バージョンを古いバージョンに戻すことでうまくいく可能性がありますか?
管理パネルに行き、パーマリンクをリセットしてください
通常、ホスティング会社はホスティングアカウントに影響を与えている可能性のある特定のmod_security
ルールを無効にすることができます。私は前にこの問題に遭遇しました、それは通常問題を引き起こすプラグインです。
プラグインを無効にして、投稿をもう一度更新してみますか?