実現したいこと
現在/wp/下にWordPressがインストールされているが、URLの/wpを削除してサイトを公開したい。
発生している問題・分からないこと
.com/wpから.comへサイトの移行自体は完了し、全ページが移行後のURLから問題なく表示されました。
ただ「投稿」→「新規投稿」から記事を作成し公開しようとすると「公開に失敗しました。 返答が正しい JSON レスポンスではありません。」とエラーが表示され、記事の公開が出来ないという状況です。
既に追加済の記事に関しては、ページ自体の表示はできますが、こちらも編集と公開が出来ません。
エラーメッセージ
error
1記事編集ページで検証ツールのコンソールで出力された内容です。 2主に以下の2種類のエラーが発生しています。 3 4Failed to load resource: the server responded with a status of 403 () 5 6Request URL: 7https://****.com/wp-json/wp/v2/posts/470/autosaves?_locale=user 8Request Method: POST 9Status Code: 403 Forbidden 10Remote Address: **** 11Referrer Policy: strict-origin-when-cross-origin
該当のソースコード
ルートディレクトリの.htaccessです。 # BEGIN WordPress # "BEGIN WordPress" から "END WordPress" までのディレクティブ (行) は # 動的に生成され、WordPress フィルターによってのみ修正が可能です。 # これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。 <IfModule mod_rewrite.c> RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
/wpの.htaccessです。 # BEGIN WordPress # "BEGIN WordPress" から "END WordPress" までのディレクティブ (行) は # 動的に生成され、WordPress フィルターによってのみ修正が可能です。 # これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。 <IfModule mod_rewrite.c> RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase /wp/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /wp/index.php [L] </IfModule> # END WordPress
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
移行作業は下記の手順で行いました。
- リストWordPressのダッシュボードからサイトアドレスを/wp無しに変更
- /wp下のindex.phpのコードを修正し、ルートディレクトリ直下にコピー
上の作業を行った時点でサイトは正常に表示されました。その上で、
- レンタルサーバーのWAFをオフ
- プラグインを全て無効化
- デフォルトテーマに変更
- ルートディレクトリの.htaccessを一旦削除し、パーマリンクを変更してファイルを再生成
- /wp下の.htaccessの内容をそのままルートディレクトリの.htaccessに貼り付けると書かれている記事もあったので、それも試しました。
補足
WordPress : 6.6.2
Webサーバー : Apache
PHP : 8.1.27
お名前ドットコム
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。