Apache htaccess Minify 正式环境不访问的重写规则

JS和CSS优化工具Minify.zip Minify 是一个 PHP5 的应用,帮助你让网站更加符合 Yahoo 的:Rules for High Performance Web Sites. Minify可以按需对JavaScript以及CSS文件进行合并、压缩以及缓存,以加快页面的载入速度。而安装minify则极其简单,只需在网站根目录下上传程序目录即可。 标签:Minify 立即下载

Google Project Minfiy 放到网站根目录 /min/ 下。

如果是正式环境(判断条件,域名HTTP_HOST中存在 . 点号就判断为正式上线环境),那么 不将网站中的CSS JS重写到min/index.php

如果是测试环境(判断条件,域名HTTP_HOST中不存在.,或者192.168. 开头或者其他特例,存在.的特例),那么网站中的CSS/JS 的真实文件全部重写。

且限定重写的CSS JS 仅仅是/public /Public /css /js 文件夹中的CSS/JS!


实现代码:htaccess ,仅仅支持Apache服务器:

#如果正式环境,不重写到压缩
RewriteCond %{HTTP_HOST} !\. [NC]
RewriteCond %{REQUEST_FILENAME} (\.(js|css))$ [NC]
RewriteRule ^((css|js|public)\/.*\.(css|js))$ min/index.php?f=$1 [L,NE,NC]

#正式环境,访问 /min 目录跳转
RewriteCond %{HTTP_HOST} \. [NC]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(min\/.*)$  /?=$1 [L,R=301]

如果存在问题,或者有更好的建议,欢迎交流。by default.fu@foxmail.com



——————————————— 附加 ———————————————————

修改 /min/.htaccess 文件,如果是正式环境,禁止任何访问!

<IfModule mod_rewrite.c>
RewriteEngine on

# You may need RewriteBase on some servers
#RewriteBase /min

#正式环境,禁止访问 min文件夹任何内容!
  RewriteCond %{HTTP_HOST} \. [NC]
  RewriteRule ^(.*)$ /?f=$1 [L,R=301]

# rewrite URLs like "/min/f=..." to "/min/?f=..."
RewriteRule ^([bfg]=.*)  index.php?$1 [L,NE]
</IfModule>
<IfModule mod_env.c>
# In case AddOutputFilterByType has been added
SetEnv no-gzip
</IfModule>



Thinkphp HTML输出压缩类 CI3.0自带了页面压缩功能,也就是将页面中的空格之类的全部去掉,这样就能省下不少的空间。 当然,TP也自带的OUTPUT_ENCODE页面压缩功能,可是当我配置OUTPUT_ENCODE=TRUE时,老是提示"无法显示此网页"错误..所以,没办法,将CI的Minify功能移过来 1、将Minify.class.php放到AUTO自动加载目录下 2、在配置文件中设置: 'MINIFY' => true, 3、在View.class.php中的render的方法增加: private function render($content,$charset='',$contentType=''){ //2013-10-3 增加milify if(C('MINIFY')){ echo Minify::compress($content); }else{ // 输出模板文件 echo $content; } } 立即下载

相关推荐

基于ThinkPHP5开发的漂亮通用后台全权限管理系统

又来分享一款基于最新thinkphp5开源框架5.0.13版本开发的通用后台权限管理系统,这是一款基于ThinkPHP5.0.13 + layui2.2.45 + ECharts +Mysql开发的后台管理框架,PHP版本要求提升到5.5。集成了一般应用所必须的基础性功能,为开发者减少重复性的工作,提升开发速度,规范团队开发模式。如果你正在使用TP5进行相关应用层序的开发,那么该框架完全可以作为通用的后台权限管理系统来使用,只需要进行简单的前端开发即可。如果你是你个正在学习THinkPHP5D的新手,也可以下载本源码进行参考学习!

minify php,ThinkSNS public/minify.php 任意文件包含漏洞

## 漏洞信息:ThinkSNS开源微博系统,是智士的开源社交平台。采用PHP+MySQL技术平台,微博+应用的产品模式,同时拥有iphone、android客户端、wap、3G版界面。ThinkSNS public/minify.php 存在任意文件包含漏洞,可被利用导致敏感信息泄漏。## 漏洞分析:问题在public/minify.php:```allowed_content_types=ar...

weixin_39912580的博客 477

minify v2.1.4 beta,css/js 优化压缩工具.zip

Minify可以按需对JavaScript以及CSS文件进行合并、压缩以及缓存,以加快页面的载入速度。而安装minify则极其简单,只需在网站根目录下上传程序目录即可。

minify使用手冊

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://www.blogbus.com/addcn-logs/82221929.html 一、配置及參數(Config.php) 1、調試模式 $min_allowDebugFlag = false; 設置為true時候,可在地址加debug=1刪除沒有壓縮格式化的源碼。 2、緩存文件目錄 $min_cachePath = ...

huyuminNo1的专栏 880

LabVIEW内存优化实战:用DVR和队列高效处理大型数组,告别数据副本

本文深入探讨LabVIEW内存优化技术,重点介绍数据值引用(DVR)和单元素队列(SEQs)在高效处理大型数组中的应用。通过对比传统方法与现代引用技术的性能差异,提供减少内存副本、提升程序效率的实战方案,帮助开发者在测试测量、图像处理等数据密集型场景中实现显著性能提升。

weixin_30835649的博客 1061

STM32f103--ADC配置

2.对于规则通道,选中EXTI线路11或TIM8_TRGO作为外部触发事件,可以分别通过设置ADC1和ADC2的ADC1_ETRGREG_REMAP位和ADC2_ETRGREG_REMAP位实现。注意: 在双ADC模式里,当转换配置成由外部事件触发时,用户必须将其设置成仅触发主ADC,从ADC设置成软件触发,这样可以防止意外的触发从转换。2.在某些双ADC模式中,在完整的ADC1数据寄存器(ADC1_DR)中包含了ADC1和ADC2的规则转换数据。通过设置ADC_CR2寄存器的ADON位可给ADC上电。

weixin_51864506的博客 5313

Minify框架分析,主要功能类简介

主要功能类简介 config.php 默认缩小应用程序的配置 index.php:为实施默认缩小的前端控制器请勿编辑!通过config.php和groupsConfig.php配置实用程序 Minify:缩小 - 联合收割机,minifies,和缓存的JavaScript和CSS文件需求 abstract class Minify_Controlle...

weixin_33966365的博客 414

40-Type-C电路设计

Type-C电路设计

weixin_66510961的博客 9649

nginx+php+minify 压缩你的css、js 详解

Minify 用于服务器端的JavaScript 和 CSS的合并压缩。 1. 首先从 Google code下载 Minify http://code.google.com/p/minify/wiki/UserGuide  2. 上传至网站根目录下,当然,也可以你所指定的位置,但是需要注意的是需要修改Minify。 3. 修改Nginx配置,可以参见我前面的文

修炼是一种态度 7392

C#.NET斗地主服务端核心架构与高性能实现

斗地主作为典型的实时对战棋牌逻辑,本质是状态驱动的分布式协同问题。其技术内核涵盖有限状态机建模、低延迟网络同步、无GC内存操作与轻量级AI决策等关键能力。在.NET平台下,借助Span<T>、ImmutableArray、命令/事件总线与内存池等特性,可构建出高吞吐(200+ QPS)、低延迟(<150ms)、强一致的可落地服务端。本文聚焦C#.NET生态中斗地主核心模块的设计取舍与压测验证,深入解析状态机驱动、CardSet结构体优化、Kestrel中间件锁、规则+概率混合AI等实战方案,为实时对战类业务

weixin_29726381的博客 345

Dify插件实战:实时渲染AI生成的HTML/SVG/Canvas代码

在现代Web开发与AI应用集成中,前端渲染技术是实现动态内容展示的核心。其原理在于浏览器引擎解析HTML、CSS、JavaScript等代码,并将其转换为可视化的用户界面。这项技术的价值在于极大提升了开发效率与用户体验,允许开发者快速构建和迭代交互式应用。在AI应用开发领域,尤其是大语言模型(LLM)集成场景,如何将模型生成的**结构化代码**(如描述UI的HTML或数据图表的SVG)实时转化为可视化组件,成为一个关键需求。这直接关系到**Dify**等低代码AI平台能否提供流畅的、所见即所得的交互体验。本

weixin_42545664的博客 498

使用Minify(配置)

看了这篇文章: 在服务端合并和压缩JavaScript和CSS文件 http://dancewithnet.com/2010/06/08/minify-js-and-css-files-in-server/ 自己也想小试一下。。所以有了下面的事情 按照上面的文章: 1.安装apache(115网盘的备份:http://115.com/file/bhrpqfu3) 2.安装php(htt...

weixin_30361753的博客 430

单细胞分析避坑指南:SCTransform和Harmony参数设置详解

本文深入解析了单细胞分析中SCTransform标准化与Harmony批次校正的关键参数设置。针对10x Genomics等数据,详细探讨了如何通过调整`vars.to.regress`、`theta`等核心参数,在有效去除技术噪音的同时,避免过度校正以保留关键的生物学差异,从而提升分析结果的可靠性与可解释性。

weixin_29053073的博客 608

Thinkphp js、css压缩类minify

Thinkphp js、css压缩类minify 说明:Minify 是用PHP5开发的应用,通过遵循一些Yahoo的优化规则来提高网站的性能。它会合并多个CSS或者JavaScript文件,移除一些不必要的空格和注释,进行gzip压缩,并且会设置浏览器的缓存头。Minify 在设计上和Yahoo的 Combo Handler Service非常像...

DXsunrise的博客 479

uniapp | 基于高德地图实现位置选择功能(安卓端)

在uni-app项目中实现地图位置选择功能的解决方案。由于uni.chooseLocation功能受限,采用高德地图API自主开发。系统由父组件poiMap.vue(负责展示和跳转)和子组件poiBox.vue(核心地图逻辑)构成,通过父子组件通信传递位置数据。关键技术包括:1)使用AMapLoader动态加载地图SDK;2)集成PositionPicker实现拖拽选点;3)异步加载AMapUI插件;4)通过事件监听获取位置详情(地址/经纬度)。

大胆尝试,小心实践 731

鲁棒优化 (Robust Optimization) 算法详解及案例分析

鲁棒优化是一种用于处理不确定性优化问题的方法。其目标是在不确定性参数的可能取值范围内,找到一个对不确定性具有鲁棒性的解。

闲人编程的博客 4327

使用Minify在服务器端合并js/css

Minify 用于服务器端的JavaScript 和 CSS的合并压缩。 1. 首先从 Google code下载 Minify http://code.google.com/p/minify/wiki/UserGuide  2. 上传至网站根目录下,当然,也可以你所指定的位置,但是需要注意的是需要修改Minify。 3. 修改Nginx配置,可以参见我前面的文

cychai的专栏 5351

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

使用minify作前端性能优化

关于前端性能优化的文章很多很多,各大网站如google,yahoo都有对前端性能优化的文章和准则。例如yahoo针对前端设计和性能优化提出了几点准则,详细可以阅读它的文章:http://developer.yahoo.com/performance/index.html#rules。       文章中有这样的几点: 1.尽量减少加载页面时的http请求,因为任何一个http请求都要连

fableboy的学习点滴 9788

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

.htaccess重写规则解析

RewriteEngine On RewriteCond %{HTTP_HOST} ^(www\.)?sochiba\.com$ RewriteCond %{REQUEST_URI} !^/blog/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /bl

jianyingxing的专栏 6340

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

PHP linux服务器报错 PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/的解决方法!

现在发现更离谱的是,新建一个目录/a,新增文件 /a/phpinfo.php,访问一次这个phpinfo.php,error_log文件就记录一次: [24-Oct-2013 07:16:22 Europe/Moscow] PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/no-debug-non-zts-20090626/”xcache.so”' - /usr/local/li

____ 6万+

网站是怎么了,一直http/1.1 302 found 浏览器假死了一样

网站不知道是怎么了,是程序的问题?还是服务器的问题?还是htaccess配置文件的问题? 反正设置了404  ErrorDocument,结果,大部分时候,请求到了404页面,浏览器就一直加载加载,反正无期限的加载下去。IE8浏览器、firefox、chrome都是这样,无期限的使劲加载,等待www.xxx.com..... 360安全浏览器则是正常的返回404程序设定的显示内容。 查

____ 2万+

ThinkPHP3.2多域名 Virtual .htaccess 匹配 RewriteCond %{HTTP_HOST}

Files *> Options -Indexes Files> IfModule mod_headers.c> FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$"> Header set Cache-Control "max-age=2592000, public" FilesMatch> FilesMatch "\.(x

____ 6621

Apache htaccess 设置 设置expires和max-age缓存 的兼容写法

htaccess文件内容: <IfModule mod_headers.c> <FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$"> Header set Cache-Control "max-age=604800, public" </FilesMatch> <FilesMatch...

____ 5001

【分享】利用Apache的Htaccess Files命令限制访问文件类型,Files正则

如果你在你的模板文件夹中有很多PSD HTML模板,那么用接下来这个htaccess文件可以保护限制访问: 文件D:\WebSite\test.com\www\Tpl\.htaccess 全部源码如下: <Files ~ "\.(html?|tpl|psd|zip|rar)$"> Order Allow,Deny Deny from all </Files> ...

____ 3708

RewriteCond: NoCase option for non-regex pattern '-f' is not supported and will be ignored.

报错提示: [Tue Dec 02 13:00:53.567492 2014] [rewrite:warn] [pid 10140:tid 3520] AH00665: RewriteCond: NoCase option for non-regex pattern '-f' is not supported and will be ignored. (/home/xxx/.htaccess

____ 3600
上一篇: Apache htaccess 重写如果文件存在!
下一篇: nginx win7 关闭 和重启 bat文件
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值