Исключение каталога из корневого правила.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
...