Tricky Rewrite rules.

HonDev Developer developerhondev at gmail.com
Thu Nov 22 15:24:11 MSK 2007


Ok with this set up it serves static pages but if there is none it
serves the wordpress php 404 error pages for any request.  It's making
it through to the proxy php but category and permalink pages are all
wordpress 404 page.    Maybe this idea doesn't work?

upstream xx.yy.com {
          server  127.0.0.1:81;
}


server {
        listen       80;

location / {
root   /home/monkeyking/public_html;
index  index.html;


if ($query_string !~ ".*s=.*") {
 rewrite ^(.*) /wp-content/cache/supercache/$http_host/$1index.html;
}

if ($http_cookie !~ "^.*comment_author_.*$" ) {
 rewrite ^(.*) /wp-content/cache/supercache/$http_host/$1index.html;
}

if ($http_cookie !~ "^.*wordpressuser.*$" ) {
 rewrite ^(.*) /wp-content/cache/supercache/$http_host/$1index.html;
}

if ($http_cookie !~ "^.*wp-postpass_.*$" ) {
 rewrite ^(.*) /wp-content/cache/supercache/$http_host/$1index.html
break;
}

error_page 404 = @tricky;
}

location @tricky {
proxy_pass      http://xx.yy.com;
}

error_page   500 502 503 504  /50x.html;
location = /50x.html {
root   html;
}
}

server {
listen       81;

access_log  logs/monkeyking.access.log;

location / {
root   /home/monkeyking/public_html;
index  index.php;



rewrite ^.*/files/(.*) /wp-content/blogs.php?file=$1;

if (!-e $request_filename) {
rewrite ^.+?(/wp-.*) $1 last;
rewrite ^.+?(/.*\.php)$ $1 last;
rewrite ^ /index.php last;
}
}


error_page   500 502 503 504  /50x.html;
location = /50x.html {
root   /var/www/nginx-default;
}

location ~ \.php$ {
fastcgi_pass   127.0.0.1:8084;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME /home/monkeyking/public_html$fastcgi_script_name;
include        /usr/local/nginx/conf/fastcgi_params;
}
}





More information about the nginx mailing list