是否可以使用htaccess为默认情况下在该目录中打开的任何文件加载CSS文件?

时间:2012-11-07 05:19:00

标签: apache .htaccess

我希望在某个目录('example.com/image.jpg')中打开每个图像文件来加载css文件,这样我就可以将图像加载到100%宽度。

编辑:要清楚,我知道我必须通过加载带有CSS的HTML文件来实现这一点,我真正的问题是如何使用CSS样式定位文件内部而不是目录本身。

1 个答案:

答案 0 :(得分:1)

为什么不使用htaccess中的重写规则通过HTML文件加载它们,您可以在其中指定CSS?一张图片本身不能使用CSS。

解决方案是a)将图片移动到可以访问的地方,但不能直接在用户访问的路径中移动,b)创建一个将参数从htaccess传递到某些HTML内容的php文件(或其他) c)创建一个执行重定向的htaccess,除非你直接访问实际文件所在的文件夹,否则你将有一个无限循环的重定向

因此我创建了2个文件:fullscreen.php和.htaccess。然后我创建了一个名为/ img /的文件夹,其中包含图像。

我保持fullscreen.php尽可能简单,随意改进风格!

<?
if(isset($_GET['img']))
{
    $imageParam = $_GET['img'];
    echo "<html><head><style>html { background: url($imageParam) no-repeat center center fixed; -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover; }</style></head><body></body></html>";
}
else
{
    echo "Image not provided";
}

然后在.htaccess中我添加了一个具有条件的重写规则 - 如果路径包含/ img /

,请不要处理规则
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_URI} !^/img/
    RewriteRule ^(.*).png$ fullscreen.php?img=/img/$1.png [L,NC]
</IfModule>

我相信这就是你要找的东西?