WordPress用のRewrite Ruleをnginxに設定
WordPressのPermalinkをApache+.htaccessで設定していたのをnginxで実現するための方法を調査。
環境: CentOS 5.8, nginx 1.0.14, PHP 5.3.10, WordPress 3.3.1
参考にしたのは下記Site.
追加したのは下記
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?q=$1 last;
}
WordPressのPermalinks設定画面では"/%postname%/"だけにした。
設定File全体は下記。
# vi /etc/nginx/conf.d/01_wordpress.conf
server {
listen 80;
server_name wordpress.hoge.com;root /home/httpd/wordpress/httpdocs;
index index.php index.html index.htm;
charset utf-8;location = /robots.txt { access_log off; log_not_found off; }
location = /favicon.ico { access_log off; log_not_found off; }location ~* \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors on;
include fastcgi_params;
client_max_body_size 20M;
}location ~ /\. {
deny all;
access_log off;
log_not_found off;
}# if the file is not found, forwarded to index.php (permalinks)
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?q=$1 last;
}
}
CacheなどPerformanceを考慮した設定はまた今度調べ直す。
< Related Posts >