Question on rewriting ...
Rakhesh Sasidharan
rakhesh at rakhesh.com
Mon Sep 3 11:51:25 MSD 2007
Hi,
I have http://domain/. Nginx is installed as my webserver, WordPress as
the blog at /net/store/www/data/wordpress, and here's the relevant bits
from my config file:
------8<-----------------------
location / {
root /net/store/www/data/wordpress;
index index.php;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?q=$1 last;
}
}
------8<-----------------------
This config works as expected. I can access my blog at http://domain/, the
feeds at http://domain/feed/ and so on ... a typical WordPress blog.
Now, for not much reason apart from the fact that I want to play around
(and learn things), I am trying to setup a rewrite rule such that any
hits to http://domain/feed/<whatever> (an incorrect URL for feeds) get the
<whatever> bit stripped out and rewritten to http://domain/feed/.
So I modify the config to the following:
------8<-----------------------
location / {
root /net/store/www/data/wordpress;
index index.php;
if (!-e $request_filename) {
rewrite ^/log/(.*)?$ /index.php?q=$1 last;
rewrite ^/feed/(rss|rss2|atom|rdf)$ /?feed=$1 last;
rewrite ^/feed/.+$ /index.php last;
}
}
------8<-----------------------
All my posts are under the /log location (that's part of the permalink
structure I setup in WordPress). So my idea is to
* rewrite all hits to http://domain/log to the posts,
* rewrite all hits to http://domain/feed/(rss|rss2|atom|rdf) to the
correct feeds, and
* rewrite all hits to http://domain/feed/<whatever> to
http://domain/index.php.
The first two work as required.
The third one seems to work sort of coz I get my blog page, but with a 404
error message from WordPress! So that leads me to think the URL is not
getting rewritten the way I want -- it is getting rewritten but for some
reason the "/feed/<whatever>" bit too is passed on to index.php. And this
is the cause for the 404 error.
Any ideas why this is happening the way it is? Strangely enough, when I
modify the /feed/<whatever> rule to redirect to http://rakhesh.com/
instead of just rewrite, things work! So I figure I've got something wrong
in my understanding of these rewrite rules ...
Thanks in advance!
- Rakhesh
http://rakhesh.net/
More information about the nginx
mailing list