Posted at

wordpress on nginxで良い感じのurlを実現する

More than 5 years have passed since last update.

wordpressのcategoryとかうまく使いなはれ。。。という意見が大多数だとは思われるが、漢にはやらねばならぬ時があるのです。

想定するのはこんなケース。

/items/7/10 というURLにアクセスされたら、/itemsページに割り当てられたテーマでページを表示しつつ、クエリパラメータとして7と10を p1=7&p2=10 と言った感じで渡したい。

最初はnginxのrewrite使って/items?p1=7&p2=10とかすれば良いんでは?と思ったのだけど、それだとページが見つからないと怒られる。で、wp_rewriteの中身をみてみると、設定の中に

/index.php?pagename=$matches[1]&paged=$matches[2]

という値があったので、

rewrite /items/([0-9]+)/([0-9]+)$ /index.php?pagename=items&p1=$1&p2=$2;

してみたらうまくいった。

pagenameの値を見てどのページを表示するか(≒私の場合はどのテーマを使うか)を判断してるようなので、そこに適切な値を設定してあげれば良い。