Rewrite WordPress and ZenPhoto for Nginx
nginxwordpressNginx also supports URL rewrite, not compatible to Apache’s modrewrite, but
more intuitive and more powerful imho. The only problem is most applications,
WordPress and ZenPhoto for this specific case do include the modrewrite code
snippet and/or may update the .htaccess
for your convenience.
Thanks to the Slicehost community, the port of mod_rewrite rules perfectly covers WordPress and SuperCache. Here are some minor modification to craft for more general usage:
# the blog dir, aka where index.php is
set $blog_dir '';
# the wordpress dir where all wp-* stays
set $wordpress_dir '/wordpress';
include wordpress.rewrite;
In nginx.conf
, define wordpress_dir
and blog_dir
, these two variables are
equivalent to WordPress address (URL) and Blog address (URL) stripped off the
host information. Then we can replace the hard-coded /blog path by using
$wordpress_dir
or $blog_dir
:
2d1
<
26c25
< set $supercache_file /blog/wp-content/cache/supercache/$http_host/$1index.html;
---
> set $supercache_file $wordpress_dir/wp-content/cache/supercache/$http_host/$1index.html;
36c35
< rewrite . /blog/index.php last;
---
> rewrite ^(.*)$ $blog_dir/index.php?q=$1 last;
Here is my zenphoto.rewrite, it seems sivel’s more concise. Either of these should work.