ど素人から毛を生やす。<延>

サイトアドレス変えたら403になったときはhtaccessでシンボリックリンクを有効化!

Web > WordPress 2016年3月15日(最終更新:8年前)

2016年3月15日に作成されたページです。
情報が古かったり、僕が今以上のど素人だった頃の記事だったりする可能性があります。

どもです。

だいぶ前に、WordPressで「サイトアドレス」を変更したら403エラーになった件の対処を書きましたが、
こちらの記事の進化・改訂版みたいなものです。

シンボリックリンクとは

シンボリックリンクとは、
特定のファイルやディレクトリを指し示すファイルを作成し、
それを通じて本体を参照する仕組み

だそうです。

あるいは、
既にあるファイルに別名をつけて、
その名前で参照できるようにすること

とも解釈されるそうです。

最もわかり易い例は、
デスクトップに貼るショートカット
だそうです。
そう言われるとなんとなくわかった気がします。

WordPressのシステムの中にはコレが使われているのですが、
シンボリックリンクはセキュリティ上のリスクとも成り得るため、
サーバーによっては初期状態で制限されていることがあります。

そういったことをするサーバーでは、WordPressのインストールが通常の方法に一手間必要なために、サーバーのコントロールパネルから自動インストールができるようになっていることがあります。

で、そういったサーバーで、WordPressのサイトアドレスを変更すると、自動インストールのときにシンボリックリンクを許可するhtaccessの記述をしておいてくれたのに、それの効力の範囲外から参照することになってしまい、シンボリックリンクが制限されてしまって403エラーになる、というのが大まかな成り行きっぽいです。

 

シンボリックリンクを有効化する2通りの書き方

というわけで、htaccessにシンボリックリンクを許可する記述をすれば解決なのですが、
その記述にも種類があり、サーバーのセキュリティ強度によっては使えないものだったりするので注意が必要です。

Options +FollowSymLinks
⇒シンボリックリンクを許可する
Options +SymLinksIfOwnerMatch
⇒シンボリックリンクのリンク元・リンク先双方の所有者が同じ時にシンボリックリンクを許可する

つまるところ、Options +SymLinksIfOwnerMatchの方が厳しいというか、固いわけです。
WordPressの場合、自動インストールでも手動インストールでも、
WordPressの構成ファイルの所有者が変わるなんてことは9割9分あり得ないので、どちらの記述でも使用できます。

で、例えばCPIサーバーだと、昔はOptions +FollowSymLinksが使えていたのですが、
2016年2月時点では不可になり、Options +SymLinksIfOwnerMatchしか使えなくなっています。
これはWordPressのバージョンではなく、サーバーの仕様変更の問題なので、
元々Options +FollowSymLinksを使えていたサーバーは問題ありません。新しく契約するもののみ注意が必要です。

 

参考サイト

IT用語辞典e-Words シンボリックリンク
Yahoo知恵袋 シンボリックリンクの利点とは何ですか?
VPSサーバーでWebサイト公開 備忘録 FollowSymLinks、SymLinksIfOwnerMatchの設定とApacheのパフォーマンス

この記事は役に立ちましたか?
  • _(:3」∠)_ 面白かった (0)
  • (・∀・) 参考になった (0)
  • (`・ω・´) 役に立った (0)