2011年05月28日(土)
WordPress の URL の Slash 問題の対処
WordPress を長いこと使っているのですが,ずっと釈然としないことがあります.
それは,「設定」→「一般」から設定可能な「 WordPress のアドレス (URL) 」,および「サイトのアドレス (URL) 」の問題.
うちのブログで言えば,ここには「 https://nao.river24.net/blog/ 」という URL を入れたいわけですが,そのように入力しても,「変更を保存」を押してサーバに送ると,なんと「 https://nao.river24.net/blog 」という URL が表示されます.内部的に,最後に「 / 」がある場合に,それを除去するようになっているようです.
意味がわかりません.こちとら「 blog 」というディレクトリを作って,その下に WordPress をインストールしているので,「 /blog/ 」以下になって然るべきだと思うのですが,何故か WordPress は長年ずっと,この最後の「 / 」を除去し続けてくれます.
まぁ,この困った仕様も,以前の環境ではあまり問題にならなかったのですが,最近 nginx + fastcgi な環境にしてから,ちょっと問題が出てきてしまいました.
なので,nginx の設定に「https://nao.river24.net/blog 」にアクセスしたときの対処を追加しました.
location ~ ^/blog$ { rewrite ^/blog$ /blog/ permanent; }
さて,どうなるか.
GET /blog HTTP/1.1 HTTP/1.1 301 Moved Permanently Location: https://nao.river24.net/blog/
これでとりあえず解決.
本当は WordPress 側を改造するべきなのかもしれませんが,アップグレードの度にその改造をするのが面倒なので,とりあえずこの対処で.