【wordpress】CPIサーバーでサイトアドレスを変更すると「403 Forbidden」エラーになるので対処法

 

 Web技術

セキュリティ対策のためにWordPressは
ドメイン直下(ルートディレクトリ)ではなく
サブディレクトリを作成しそこにインストールするようにしております。

インストール場所例:
https://example.jp/wp-example/

セキュリティ面だけでなく静的HTMLで別ページを作る時も
WordPressのファイルはサブディレクトリに入っているためごちゃごちゃにならず
サーバー内が整理しやすいのもあります。

今回もいつも通りに
サブディレクトリ(/wp-example/)を作成しWordPressをインストールして
index.phpの編集・ルートディレクトリへアップとサイトアドレスの設定変更で
ルートディレクトリ表示(https://example.jp)させる。

はい、完了

と思ったのですがサイトを見ると…

「403 Forbidden」

は?(;゚д゚)

何と別で作成していた静的HTMLのページすらも表示されません。。。

いつも通りの事をやっているだけなのに
訳が分かりません。。。

一旦index.phpとサイトアドレスを最初の状態に戻しました。
にもかかわらずまだ

「403 Forbidden」

オイ(゚A゚;)

ルートディレクトリにある.htaccessを開いてみると
下記の記述が残っていたので削除して

アップし直したところ…

元に戻りました(https://example.jp/wp-example/)。
静的HTMLのページも表示されました。

「ということは…これってルートディレクトリにしか
WordPressインストールできないじゃん(#゚Д゚)」

と数分憤っていたのですが 冷静になって調査してみましたところ

解決方法がありました(゚∀゚ 三 ゚∀゚)

何やら見知らぬ記述が書かれていた

私はよくルートディレクトリには自ら.htaccessを作成しアップするのですが
WordPressインストール時にサブディレクトリ内にできる.htaccessと
見比べてみるとサブディレクトリ内の.htaccessに見知らぬ記述がありました。

サブディレクトリ(/wp-example/)に入ってた.htaccess

 

「suPHP_ConfigPath /home/ディレクトリ名/html/wp-example」

これはなぁに???|ω・)
どうやらこの記述が原因のようでした。

ルートディレクトリにアップしていた.htaccessは
自ら作成してアップした.htaccessだったため当然この記述がありません。

この記述を

「suPHP_ConfigPath /home/ディレクトリ名/html/」

に変更して
ルートディレクトリにアップしなければならなかったようです。

こんなの教えてもらわんと分からんて…(´-ω-`)

一旦サブディレクトリの.htaccessをダウンロードしてきて編集、
ルートディレクトリにアップすることにします。

CPIサーバーでWordPressをサブディレクトリに設置のまとめ

サブディレクトリを作成しWordPressをインストール

インストール場所例:
https://example.jp/wp-example/

なら「wp-example」フォルダを作成しその中にWordPressをインストール。

サイトアドレスを変更

管理画面から設定>一般で
サイトアドレスをルートのURL(https://example.jp)に変更して「変更を保存」をクリック。

サブディレクトリ内の.htaccessとindex.phpをダウンロード

WordPressをインストールしたフォルダ内にある.htaccessとindex.phpをダウンロード。
フォルダ内のは削除せずそのままにしておきます。

ダウンロードしたindex.phpを編集

「require( dirname( __FILE__ ) . ‘/wp-blog-header.php’ );」

「require( dirname( __FILE__ ) . ‘/wp-example/wp-blog-header.php’ );」

に編集します。

ダウンロードした.htaccessを編集

変更箇所は下記の3箇所

  • suPHP_ConfigPath /home/ディレクトリ名/html/wp-example
  • RewriteBase /wp-example/
  • RewriteRule . /wp-example/index.php [L]

編集後の.htaccess

編集した.htaccessとindex.phpをルートディレクトリにアップロード

編集した.htaccessとindex.phpをドメイン直下(ルートディレクトリ)にアップロードします。

 

サイトを確認すると無事にルートディレクトリ表示(https://example.jp)になりました(*゚▽゚*)

他のサーバーではこんなこと無いのですがね…
何はともあれ対処できて良かったです。

 この記事の投稿者

taka

Webサイト作ってます。
最近のモットー「決して無理をしないスタイル」

twitter: @taka_sbs

  • このエントリーをはてなブックマークに追加
  • 0 follow us in feedly

ページ最上部へ