WordPress.org

Ready to get started?Download WordPress

Forums

[Plugin: W3 Total Cache] Network blogs in subdirectory mode (10 posts)

  1. Steve
    Member
    Posted 4 years ago #

    I was just looking at this plugin but when you try to install it in WP in Networked blog mode running in subdirectories it seems to want to put the subdirectory into the .htaccess rules which suggests that this plugin can't be used in subdirectory mode.

  2. Frederick Townes
    Member
    Posted 4 years ago #

    Are you suggesting that W3TC is putting incorrect paths in .htaccess?

  3. Steve
    Member
    Posted 4 years ago #

    It does if its enabled by a user of one of the blogs. For example if I log into my blog and enable it then it wants /steve/ in the paths in the .htaccess file.

    If I do a network activate then it throws out errors about the .htaccess.

    On the "root" blog it wants these .htaccess rules:

    # BEGIN W3TC Page Cache
    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteBase /
        RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9\-\.]+\.[a-z]+)\.?(:[0-9]+)?$
        RewriteRule .* - [E=W3TC_DOMAIN:%2]
        RewriteCond %{REQUEST_URI} ^/(mintball|steve|develop|canalplanac)/
        RewriteRule .* - [E=W3TC_BLOGNAME:%1.]
        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|sie|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 "/webstuff/canalblogs/wp-content/w3tc-%{ENV:W3TC_BLOGNAME}%{ENV:W3TC_DOMAIN}/pgcache/$1/_index%{ENV:W3TC_UA}%{ENV:W3TC_SSL}.html%{ENV:W3TC_ENC}" -f
        RewriteRule (.*) "/wp-content/w3tc-%{ENV:W3TC_BLOGNAME}%{ENV:W3TC_DOMAIN}/pgcache/$1/_index%{ENV:W3TC_UA}%{ENV:W3TC_SSL}.html%{ENV:W3TC_ENC}" [L]
    </IfModule>
    # END W3TC Page Cache

    Which seems to include a hard-coded list of the current blogs on the site

    on the /steve/ blog it wants:

    # 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.1"
        </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.1"
        </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.1"
        </IfModule>
    </FilesMatch>
    # END W3TC Browser Cache

    Also it needs to write a config file for each blog into the wp-content directory.

  4. Frederick Townes
    Member
    Posted 4 years ago #

    Network activation is not supported. I'm still not clear on what you expect. In network mode, activating the plugin per blog will not append the .htaccess rules automatically. Instead .htaccess must be manually updated.

  5. Steve
    Member
    Posted 4 years ago #

    Yes but in network blog mode that means you are going to have to give every user access to the .htaccess file - which is not really sensible.

    Also if you look at the rules for the "root" blog it has a hard coded list of the blogs in it - which means that each time a blog is added you have to go back and change the "root" rules.

    Is there any way you can use the built in re-write rules feature

  6. Frederick Townes
    Member
    Posted 4 years ago #

    Yes but in network blog mode that means you are going to have to give every user access to the .htaccess file - which is not really sensible.

    This is not really a question of me being ignorant of the inconvenience, the fact is there are too many assumptions to be made for too many options and that trying to automate this is buggy and breaks more than it works.

    Also if you look at the rules for the "root" blog it has a hard coded list of the blogs in it - which means that each time a blog is added you have to go back and change the "root" rules.

    You mean the notification with directives for "non-root sites" are incorrect?

    Is there any way you can use the built in re-write rules feature

    Can you elaborate?

  7. Steve
    Member
    Posted 4 years ago #

    You mean the notification with directives for "non-root sites" are incorrect?

    What I mean is that the .htaccess file contains :

    RewriteCond %{REQUEST_URI} ^/(mintball|steve|develop|canalplanac)/

    which means that every time a blog is added the .htaccess rules which are generated by the "root" blog will have to be changed.

    Can you elaborate?

    certainly : http://codex.wordpress.org/Function_Reference/WP_Rewrite

  8. Frederick Townes
    Member
    Posted 4 years ago #

    W3TC has separate cache folder for each blog. The folder format is w3tc-<blogname>. To make disk enhanced work in network mode I have to detect blogname in rewrite rules. To detect correct blogname we have to make DB query at activation so it's impossible in this way. One possible way - use predefined list of correct blog names obtained through another method.

  9. javierfarreres
    Member
    Posted 3 years ago #

    Hi frederik

    Just my 5 cents. I keep reading from you that this module is like a swiss army with too many options and for this reason every blog has its own setup when in network mode.

    Now, let me suggest you something. I open a site so other people can create their own blogs. These are free blogs but I can't give them access to .htaccess nor anything like that. It should be possible for me to establish a common rule for all the blogs in my site so that this swiss army is tailored to my needs and to what I want to offer to my users. If someone doesn't like the configuration I am setting up, then they can open a blog in some other site or build their own.

    It MUST be possible to establish a global set up for ALL blogs in a site. At least, there should be this option. I think this is what Steve meant.

  10. Frederick Townes
    Member
    Posted 3 years ago #

    For now it's not.

Topic Closed

This topic has been closed to new replies.

About this Topic