WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

My WordPress site is returning a 404 not found error on any page apart from the homepage and /wp-admin. I have no absolutely no idea why this is. My Permalinks are set up to use /year/month/date/post-title/ (e.g www.domain.com/2014/04/28/sample-post/). When I change the permalinks to the default (?p=123) it works fine, but not on any of the other ones. Here is the contents of the .htaccess file:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

I have also installed the plugin 'Debug This', which provides details on the Rewrite Rules. However because it's a pretty big list and unformatted it would look quite bad, I've put it in a jsfiddle, here: http://jsfiddle.net/k8PHD/embedded/result/

I think that's all the details I have, I've disabled all plugins and stuff like that. Thanks for any help.

EDIT: ok so I've since discovered a bit more info. I also forgot to say that the host for the site is Heroku (I'm building for a client and for some reason he's insisting I use Heroku, which is bad choice for WP I know but I can't persuade him otherwise so that's life). I recently installed heroku-buildpack-php-tyler, which also installed Nginx. So I'm assuming that's whats broken my Permalinks. I then found this post, which seems to be about the issue I'm having, which links to this page on the Nginx Documentation. Problem is I've never used Nginx before so I don't know where to put all the code it's got in the first section entitled Abridged Basic Setup. Can someone help me out? Thank you :)

share|improve this question
  1. Your server does not have mod_rewrite enabled
  2. Or you do not have AllowOverride set correctly to allow your .htaccess file to operate correctly. You will need AllowOverride set to at least FileInfo.

I'd bet on the latter, as mod_rewrite is pretty ubiquitous.

Based on your edit, the issue is that Nginx doesn't use .htaccess files. My experience with Nginx is limited but rewrite rules are written into server configuration files, I believe. The Codex has a page on the topic.

share|improve this answer
thanks for the input, I've added more info to the post I've since found out which hopefully will be more useful :) – Tom Oakley Apr 29 '14 at 17:18

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.