我正在使用.htacces文件进行某些页面缓存。我有一个主人.htaccess,它位于我的doc根目录中,这个htaccess将所有内容重定向到PHP路由器。然后路由器提供给定URL的内容。
但是,对于我正在使用URL的页面是动态的,取决于用户名。
网址可能如下所示:
http://example.com/username/custom-page
提供给该网址的内容存在于:
http://example.com/content/custom-page/
但是,我注意到当我将.htaccess文件放在提供文件的目录中时,它没有任何效果。
此外,由于网址是动态的,因此很难为该网页使用个人.htaccess。
无论如何,我正试着写这个.htaccess,就像这样:
$parent = $_SERVER['DOCUMENT_ROOT'].'/content/custom-page/.htaccess';
if (!is_file($parent)){
$noCache = '<FilesMatch "\.(.*)$">
FileETag None
<IfModule mod_headers.c>
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</IfModule>
</FilesMatch>';
$file = fopen($parent, "w");
if (!$file) die("error writing to parent directory");
fwrite($file, $noCache);
fclose($file);
}
else {
echo "no htaccess";
}
我正在接受“没有htaccess”。我想知道我应该怎么处理它。我真的不想在主人.htaccess上设置最大年龄标题。
答案 0 :(得分:0)
你有一个简单的逻辑错误。
if (!is_file($parent)){
请注意,如果文件不存在,则执行代码;如果文件存在,则回显“no htaccess”!
我不确定你为什么要进行这项检查,因为如果文件存在,你只是覆盖它。
当然,以这种方式编写.htaccess可能不会产生你想要的效果,但这是一个完全不同的问题。