从根 .htaccess 重写规则中排除目录以禁止缓存

从根 .htaccess 重写规则中排除目录以禁止缓存

在我的 lamp 安装中,我在根文件夹“/”(mydomain.org)中有一个 wordpress 多站点,其中激活了 W3 total cache,我还有一个名为““(mydomain.org/sub)里面有一个 PHP 脚本。

我在 sub_dir 上遇到了一些缓存问题,因此我想设置一个 RewriteRule 来从我的 sub_dir 中排除 W3 总缓存,问题是我对此只有基本的了解。

我的根目录的 htaccess

...

 # BEGIN W3TC Minify cache
<IfModule mod_rewrite.c> 
    RewriteEngine On
    RewriteBase /
    RewriteRule ^[_0-9a-zA-Z-]+/wp-content/cache/minify/[0-9]+/w3tc_rewrite_test$ /wp-content/plugins/w3-total-cache/pub/minify.php?w3tc_rewrite_test=1 [L]
</IfModule>
# END W3TC Minify cache

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [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]
</IfModule>

我的 sub_dir 的 htaccess

Options -Indexes +FollowSymLinks
RewriteEngine On
php_flag opcache.enable Off
RewriteBase /sub_dir
# exclude any paths that are not codeigniter-app related
RewriteCond %{REQUEST_URI} !^/server-status
RewriteCond %{REQUEST_URI} !^/server-info
RewriteCond %{REQUEST_URI} !^/docs
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
<IfModule mod_php5.c>
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
# the following is for rewritting under FastCGI
<IfModule !mod_php5.c>
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

以下是我的规格:

  • 服务器版本:5.5.40-0ubuntu0.14.04.1(Ubuntu)
  • Apache/2.4.7(Ubuntu)
  • 数据库客户端版本:libmysql
  • 5.5.40 扩展 PHP:mysqli
  • php版本:5.5.9-1ubuntu4.5

答案1

您可以定义一个重写条件排除条件 根 htaccess 中的路径。

它会是这样的(未经测试)

...

 # BEGIN W3TC Minify cache
<IfModule mod_rewrite.c> 
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_URI} !^/sub
    RewriteRule ^[_0-9a-zA-Z-]+/wp-content/cache/minify/[0-9]+/w3tc_rewrite_test$ /wp-content/plugins/w3-total-cache/pub/minify.php?w3tc_rewrite_test=1 [L]
</IfModule>
# END W3TC Minify cache

...

相关内容