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