[Plugin: W3 Total Cache] No W3TC rules in .htaccess file
-
This is probably a no brainer, but I can not see the W3TC rules in my .htaccess file. I never realized they were missing as my website has been functioning as normal, although I know I have had the rules there at some point.
How can I retrieve them back, if that is even possible? I tried to reinstall the plugin, but nothing happened.
-
make sure it’s the right htaccess you’re looking at. should be in your root directory.
And check the htaccess again. on system w3tc inserts the rules all the way down the page, leaving alot of white space between existing rules.
This website is an add-on domain, I have looked there and in the root directory but found nothing. Also, the add-on has multisite enabled. Don’t know if that would make any difference.
Basically, I just want to redirect to www. since the redirect won’t work whenever w3tc is enabled. I have read that in order to do so, I have to place the code right above the w3tc rules.
Any input on this? And thanks for the reply.
Are you using disk enhanced page caching?
Yes.
You’ll need to put any redirect rules above any W3TC rules. You can find the directives you need for your installation by checking the install tab of the plugin.
Thank you! It never crossed my mind to look there. I have updated the .htaccess files with the rules given but no, still I can’t get it right. This is what I did:
Placed w3tc browser and page cache rules in /public_html/mydomain/.htaccess above these rules:
RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] # uploaded files RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L] # add a trailing slash to /wp-admin RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L] RewriteRule . index.php [L]
The redirect was placed above everything else;
RewriteCond %{HTTP_HOST} !^mydomain.com$ RewriteRule ^(.*)$ https://www.mydomain.com/$1 [R=301]
The second set of page cache and minify rules were placed in their respective files. I must have missed something along the way, but what? You can probably tell I have enabled multisite. Don’t know if that makes any difference.
Thanks for helping me out!
Anyone, please help? I haven’t figured this out yet. So frustrating..
Can you paste your entire .htaccess file for the root of your site?
Here it is.
# BEGIN W3TC Browser Cache <IfModule mod_deflate.c> <IfModule mod_setenvif.c> BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html </IfModule> <IfModule mod_headers.c> Header append Vary User-Agent env=!dont-vary </IfModule> AddOutputFilterByType DEFLATE text/css application/x-javascript text/html text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon </IfModule> <FilesMatch "\.(css|js)$"> FileETag None <IfModule mod_headers.c> Header set X-Powered-By "W3 Total Cache/0.9.1.3" </IfModule> </FilesMatch> <FilesMatch "\.(html|htm|rtf|rtx|svg|svgz|txt|xsd|xsl|xml)$"> FileETag None <IfModule mod_headers.c> Header set X-Powered-By "W3 Total Cache/0.9.1.3" </IfModule> </FilesMatch> <FilesMatch "\.(asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|pot|pps|ppt|pptx|ra|ram|swf|tar|tif|tiff|wav|wma|wri|xla|xls|xlsx|xlt|xlw|zip)$"> FileETag None <IfModule mod_headers.c> Header set X-Powered-By "W3 Total Cache/0.9.1.3" </IfModule> </FilesMatch> # END W3TC Browser Cache # BEGIN W3TC Page Cache <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{HTTP_USER_AGENT} (2\.0\ mmp|240x320|alcatel|amoi|asus|au\-mic|audiovox|avantgo|benq|bird|blackberry|blazer|cdm|cellphone|danger|ddipocket|docomo|dopod|elaine/3\.0|ericsson|eudoraweb|fly|haier|hiptop|hp\.ipaq|htc|huawei|i\-mobile|iemobile|j\-phone|kddi|konka|kwc|kyocera/wx310k|lenovo|lg|lg/u990|lge\ vx|midp|midp\-2\.0|mmef20|mmp|mobilephone|mot\-v|motorola|netfront|newgen|newt|nintendo\ ds|nintendo\ wii|nitro|nokia|novarra|o2|openweb|opera\ mobi|opera\.mobi|palm|panasonic|pantech|pdxgw|pg|philips|phone|playstation\ portable|portalmmm|ppc|proxinet|psp|pt|qtek|sagem|samsung|sanyo|sch|sec|sendo|sgh|sharp|sharp\-tq\-gx10|small|smartphone|softbank|sonyericsson|sph|symbian|symbian\ os|symbianos|toshiba|treo|ts21i\-10|up\.browser|up\.link|uts|vertu|vodafone|wap|willcome|windows\ ce|windows\.ce|winwap|xda|zte) [NC] RewriteRule .* - [E=W3TC_UA:_low] RewriteCond %{HTTP_USER_AGENT} (acer\ s100|android|archos5|blackberry9500|blackberry9530|blackberry9550|cupcake|docomo\ ht\-03a|dream|htc\ hero|htc\ magic|htc_dream|htc_magic|incognito|ipad|iphone|ipod|lg\-gw620|liquid\ build|maemo|mot\-mb200|mot\-mb300|nexus\ one|opera\ mini|samsung\-s8000|series60.*webkit|series60/5\.0|sonyericssone10|sonyericssonu20|sonyericssonx10|t\-mobile\ mytouch\ 3g|t\-mobile\ opal|tattoo|webmate|webos) [NC] RewriteRule .* - [E=W3TC_UA:_high] RewriteCond %{HTTPS} =on RewriteRule .* - [E=W3TC_SSL:_ssl] RewriteCond %{SERVER_PORT} =443 RewriteRule .* - [E=W3TC_SSL:_ssl] RewriteCond %{HTTP:Accept-Encoding} gzip RewriteRule .* - [E=W3TC_ENC:.gzip] RewriteCond %{REQUEST_METHOD} !=POST RewriteCond %{QUERY_STRING} ="" RewriteCond %{REQUEST_URI} \/$ RewriteCond %{REQUEST_URI} !(\/wp-admin\/|\/xmlrpc.php|\/wp-(app|cron|login|register|mail)\.php|wp-.*\.php|index\.php) [NC,OR] RewriteCond %{REQUEST_URI} (wp-comments-popup\.php|wp-links-opml\.php|wp-locations\.php) [NC] RewriteCond %{HTTP_COOKIE} !(comment_author|wp-postpass|wordpress_\[a-f0-9\]\+|wordpress_logged_in) [NC] RewriteCond "/home2/twofova3/public_html/wp-content/w3tc/pgcache/$1/_index%{ENV:W3TC_UA}%{ENV:W3TC_SSL}.html%{ENV:W3TC_ENC}" -f RewriteRule (.*) "/wp-content/w3tc/pgcache/$1/_index%{ENV:W3TC_UA}%{ENV:W3TC_SSL}.html%{ENV:W3TC_ENC}" [L] </IfModule> # END W3TC Page Cache # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
Thanks
Any suggestions what might be wrong here, Frederick? Thanks again
Well those are the directives you need, but I’m not clear on what the problem is. Is your site in network mode or not?
Hi, thanks for your reply!
My initial problem:
Basically, I just want to redirect to www. since the redirect won’t work whenever w3tc is enabled. I have read that in order to do so, I have to place the code right above the w3tc rules.
So I either disable w3tc and redirect to www. or acitvate w3tc and have no redirect no matter if the code is in the .htaccess file. They just cannot work together. At least in Firefox and Chrome the redirect wont work. In Safari it seems fine, not sure about other browsers though.
Really frustrating. This has forced my website to live without w3tc for quite some time. :/
Again, thank you for your effort.
Lots of users had issues with the order of directives, but you should be ok if things are in the right order. I don’t see anything that should be going wrong based on the provided information, so I guess there’s another underlying issue. You can submit a bug submission form from the support tab of the plugin if you like.
Report submitted ??
I’m not sure if this is the same problem, but I’m trying to edit the htaccess file so that users are redirected to the home page if they try to access a file that does not exist. I tried adding the following line at the the top of the htaccess file, above the other directives, but it didn’t work:
ErrorDocument 404 https://www.mydomain.com/
- The topic ‘[Plugin: W3 Total Cache] No W3TC rules in .htaccess file’ is closed to new replies.