我正在尝试将名为styles.css
的主样式表的所有请求重定向到min/g=css
的minify脚本,这样我就可以实时处理CSS文件并让服务器使用重定向缩小脚本。
基本上,这在我的html文件中......
<link rel="stylesheet" href="css/styles.css" type="text/css">
变成这个
<link rel="stylesheet" href="min/g=css" type="text/css">
当服务器请求它时。
到目前为止,这是我的尝试,但它似乎根本不起作用。常规的css文件只是在服务器上加载..
RewriteRule ^css/styles\.css$ min/g=css
沿着这些方向,我也开始担心何时开始构建子目录页面。这个重写规则是否需要成为“绝对路径”?感谢大家的帮助!
答案 0 :(得分:1)
沿着这些方向,我也开始担心何时开始构建子目录页面。这个重写规则是否需要成为“绝对路径”?感谢大家的帮助!
在htaccess文件中应用规则时,重写引擎会删除URI的前导斜杠,但如果规则在server / vhost配置中,则需要前导斜杠。目标(规则的min/g=css
部分)也不需要是绝对路径,但如果存在前导斜杠,则apache会将其应用于基础(通常是文档根)。如果没有前导斜杠,apache会尝试猜测你是指文件路径还是URI路径,有时它会猜错。如果你包含一个RewriteBase
指令,那么apache将始终使用它作为它的基础。
所以这里的问题真的变成了:你在哪里有这些规则?在一个htaccess文件中,你只剩下基数的问题。如果它在server / vhost配置中,您需要知道基数以及向正则表达式添加前导斜杠:^/css/styles\.css$
。或者你可以安全地做出选择:^/?css/styles\.css$
现在,基地。基数是附加相对路径的位置。您的css链接是css/styles.css
。如果该网页已加载,例如此网址:http://domain.com/some/path/mypage.html
,则基础为http://domain.com/some/path
。并且相对路径的分辨率为http://domain.com/some/path/css/styles.css
。在此示例中,您的规则需要位于/some/path
指向的目录中,并且您需要:
RewriteBase /some/path/
高于你的规则。否则,您只需将该基数附加到规则的正则表达式和目标:
RewriteRule ^/?some/path/css/style\.css$ /some/path/min/g=css [L]