【问题标题】:how to remove cache from admin panel using .htaccess如何使用 .htaccess 从管理面板中删除缓存
【发布时间】:2018-02-14 18:15:08
【问题描述】:

我有一个用于管理面板和网站的 .htaccess 文件。 在我的网站中,我使用 apc 缓存进行缓存,它在网站上运行良好, 但在后端/管理面板中,由于缓存存在很多问题。

现在我不需要在管理面板中缓存,但网站我需要缓存

所以,请告诉我如何在 .htaccess 中为网站和管理面板编写正则表达式。

目前我在我的 .htaccess 中使用此代码

## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/svg+xml "access 1 month"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresDefault "access plus 2 days"
</IfModule>
## EXPIRES CACHING ##

例如:

cache works on : www.xyz.com/
cache not works on : www.xyz.com/admin

【问题讨论】:

  • 不能在admin目录下放一个单独的htaccess文件吗?
  • @axel.michel 这仅适用于位于管理目录中的文件。 .htaccess 文件中提到的资产可能位于其他地方,并且 - 再次可能 - 两个部分(管理员/非管理员)相同。
  • 我的文件/目录结构如果不同并且我正在使用 symfony 框架(php)
  • 您可以访问您的服务器配置吗?您可以为此使用“位置” - 但在 htaccess 中不允许使用位置,您需要修改 httpd.conf,请参阅httpd.apache.org/docs/2.2/mod/core.html#location
  • 你能告诉我们你的 symfony 版本/设置吗?你使用 Assetic 吗?

标签: php apache .htaccess caching apc


【解决方案1】:

您似乎在谈论图像、样式表和 JavaScript 等资产。

假设普通部分和管理部分的资产相同,在您的.htaccess 文件中没有简单的方法可以做到这一点:浏览器将请求相同的 url,无论用户是否访问普通页面或管理页面。

您可以在代码本身的管理部分中执行的操作是使用唯一的文件名(例如 /assets/css/style.css?v=UNIQUE_VERSION_NUMBER)使缓存无效。

这里唯一的版本号可以是您最近提交的哈希、时间戳等。

【讨论】:

    【解决方案2】:

    您可以使用以下代码通过缓存到特定文件夹来关闭。

    <Directory "your folder path(e.g. /www/htdocs/admin)">
        ExpiresActive Off
    </Directory>
    

    希望这可以解决您的问题。

    【讨论】:

      猜你喜欢
      • 2021-05-30
      • 1970-01-01
      • 2015-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多