Nginx rewrite правила для WordPress

Надыбал недавно в инете правила для rewrite под ЧПУ WordPress. 
Решил спионерить немного их себе, в хозяйстве пригодятся, вернее уже пригодились 🙂

server {
    listen 80;
    server_name site.com;
    access_log logs/site.access.log;

    location ~* ^.+\.(html|jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar
	|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$
    {
        root /home/site.com/public_html;
        rewrite ^/.*(/wp-.*/.*\.(html|jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar
	 |bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js))$ $1 last;
        rewrite ^.*/files/(.*(html|jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar
	 |bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js))$
	 /wp-content/blogs.php?file=$1 last;
        expires 30d;
        break;
    }

    location / {
        root /home/site.com/public_html;
        index index.php;

        if (!-e $request_filename) {
            rewrite ^.+/?(/wp-.*) $1 last;
            rewrite ^.+/?(/.*\.php)$ $1 last;
            rewrite ^(.+)$ /index.php?q=$1 last;
        }
    }
    error_page 500 502 503 504 /50x.html;

    location = /50x.html {
        root /var/www/nginx-default;
    }

    location ~ \.php$ {
        rewrite ^/.*(/wp-.*/.*.php)$ $1;
        fastcgi_pass 127.0.0.1:xxxx;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /home/site.com/public_html$fastcgi_script_name;
        include /usr/local/nginx/conf/fastcgi_params;
    }
}
server {
    server_name www.site.com;
    rewrite ^/(.*) http://site.com/$1 permanent;
}

Поделись с друзьями:

Опубликовано 24.02.2011 в 10:36 · Автор komivlad · Ссылка
Рубрики: WebServer, WordPress · Теги: , , ,

Написать комментарий