Исключение каталога из корневого правила.htaccess переписать, чтобы запретить кэширование

При установке лампы в корневой папке "/" (mydomain.org) есть многосайтовый WordPress с активированным общим кэшем W3, у меня также есть sub_dir под названием "sub" (mydomain.org/sub) с PHP-скриптом внутри.

У меня есть некоторые проблемы с кешем в sub_dir, поэтому я хочу установить RewriteRule, чтобы исключить общий кеш W3 из моего sub_dir, проблема в том, что у меня есть только базовые знания по этому вопросу.

Доступ моего корня

...

 # 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>

htaccess моего sub_dir

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 ответ

Решение

Вы можете определить условие RewriteCond, чтобы исключить подпуть в корневом 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

...
Другие вопросы по тегам