ウェブ、ショウジン

Nginx: nginxでWordPressのパーマリンク設定をカスタム構造に変更する

2011-12-20
Category
Server

http://domain/西暦/月/記事タイトル.html

これまでは上記のようなURLにするためにパーマリンク設定でカスタム構造を選んで、そこに「/%year%/%monthnum%/%postname%.html」と設定していた。

Apacheの.htaccessでこれを実現するには、WordPressを運用するディレクトリに以下を記述した.htaccessを配置。(RewriteBase部分はWordPressを置くディレクトリによって変わる)

<ifModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/index.php [L]
</ifModule>

WebサーバをApacheからnginxに変更したので、この.htaccessでの設定が使えなくなるので、nginxで設定し直す。

*ちなみに、これをしないでただパーマリンクのカスタム構造で前述の設定をすると、投稿やページへのリンクが404で無効になってしまう。当たり前だけど。

nginxでWordPressのパーマリンク設定を変更(カスタム構造に)するには、該当のドメイン(サイト)の設定ファイルのserverブロックの中のlocationブロックに以下のような内容を追加する。

運用するWordPressが「mysite.com/wp/」の場合。

nginxの設定

/etc/nginx/sites-available/mysite.com

編集前

location / {
	root /var/www/mysite.com/public_html;
	index index.html index.htm index.php;
}

編集後

location / {
	root /var/www/mysite.com/public_html;
	index index.html index.htm index.php;
}

## WordPressのパーマリンク設定をカスタム構造にするための設定 ##
location /wp {
	root /var/www/mysite.com/public_html;
	index index.html index.html index.php;
	if (-f $request_filename) {
		expires 30d;
		break;
	}
	if (!-e $request_filename) {
		rewrite ^.+?($/wp-.*) $1 last;
		rewrite ^.+?(/.*\.php)$ $1 last;
		rewrite ^ /wp/index.php last;

	}
}

設定を反映させるためにnginxを再起動。

$ sudo /etc/init.d/nginx restart

WordPressの設定

サイドメニュー「設定」から「パーマリンク設定」をクリックして、遷移先の「共通設定」で「カスタム構造」をチェック。

このカスタム構造に「/%year%/%monthnum%/%postname%.html」を入力して、変更を保存。

今回追加した記述を細部まで理解してはいないけれど(それはよろしくないけれど)とりあえず変更したパーマリンク設定は有効になって投稿やページへのリンクも有効になった。

以下の記事のおかげです。ありがとうございます。
nginx で WordPress のパーマリンク設定を使用する

Categories

Tag Cloud

AdMob Android Apache centos CodeIgniter EC-CUBE facebookアプリ facebookページ feed Firefox Flash google googleanalytics htaccess iPad iPhone JavaScript lamp mobile nginx ogp pear php plugin rollover rss sendmail setting smarty ssh Titanium Mobile Titanium Studio tutorial ubuntu vim VirtualBox vmware vps Windows WordPress xampp youtube さくらインターネット アクセス解析 カスタム投稿