This may be a dumb question, but are you having w3tc put the nginx rules directly into your nginx.conf file for your server, or in the web root directory? If you’re having it put the rewrite rules in the web root, have you pointed to it in the server’s nginx.conf file?
Thread Starter
evanw
(@evanw)
Thanks for the reply, can you clarify this inclusion process? W3TC put the rewrite rules in the web root.
You either need to move those rules into you current nginx config file or tell nginx to also check the w3tc nginx.conf file for re-write rules. You could add something to your location block along the lines of:
include /pathtomywebfolder/nginx.conf;
A word of warning though, if you have w3tc set gzip, you may need to remove any conflicting gzip settings from the nginx default config file. If you don’t, when you go to restart nginx, you’ll get an error and your site will be offline until you resolve the conflict and start nginx up again.
Thread Starter
evanw
(@evanw)
Thanks again for the reply. I actually was on the right track earlier, I included the W3TC-created nginx.conf in my Nginx.conf file and disabled gzip in the main configuration:
user www-data;
worker_processes 1;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
# multi_accept on;
}
http {
include /etc/nginx/mime.types;
access_log /var/log/nginx/access.log;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
tcp_nodelay on;
#gzip on;
#gzip_disable "MSIE [1-6]\.(?!.*SV1)";
## ADDED FILE HERE
include /var/www/techerator.com/public_html/nginx.conf;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
But this gives the error:
Restarting nginx: [emerg]: "location" directive is not allowed here in /var/www/techerator.com/public_html/nginx.conf:2
configuration file /etc/nginx/nginx.conf test failed
From what I can tell, it’s breaking because it doesn’t like the syntax in the W3TC-created nginx.conf file. This file starts right away with the location block.
Any thoughts?
Have you tried putting it into the server block of sites-enabled file (presumably something like etc/nginx/sites-enabled/techerator.com)?
Thread Starter
evanw
(@evanw)
That worked without throwing any Nginx errors, but I’m still seeing the original warning message:
It appears URL rewriting is not working. If using apache, verify that the server configuration allows .htaccess or if using nginx verify all configuration files are included in the configuration.
Thanks for your continued help with this.
Thread Starter
evanw
(@evanw)
If it would help to see my full .conf file from my /sites-enabled folder, let me know and maybe I could email it to you.
Honestly, you probably need to submit a bug report in w3tc. If nginx is starting up without any errors and is including the rewrite rules, then the problem is probably somewhere else either in w3tc or possibly in your server config. You’d need to have Frederick or somebody log in to take a look at it.
Thread Starter
evanw
(@evanw)
Is there a recommended way to reach Frederick?
Thanks for all your help with this.
Just use the support section inside of the plug-in to report a bug.
Hi,
Great plugin – but I too have the same problem as “evanw”.
WP 3.1 and using the Development version of W3 Total Cache
In my /etc/nginx/sites-enabled/mysite.com I have the following within the server block:
include /var/www/mysite.com/nginx.conf;
But with the plugin was still saying:
“It appears URL rewriting is not working. If using apache, verify that the server configuration allows .htaccess or if using nginx verify all configuration files are included in the configuration.”
The only way to make the message disappear was in General > Page Cache > Page Cache Method: changed to Disk (basic) rather than Disk (enhanced).
This should be better behaved in later releases.