我有一个使用HTML5缓存并且工作可爱的网站.
当我使用Basic Auth(.htpasswd)保护站点时,缓存似乎不起作用.理想情况下,我希望该网站为经过身份验证的用户进行缓存.我的理论是,当他们离线访问该站点时,服务器实际上并未被命中,因此显示了缓存版本.
HTML5规范的一部分是,如果页面受到保护,它们不会被缓存吗?我找不到任何参考.
有没有人成功创建过密码保护的可缓存应用程序?
我不确定这是否是特定于浏览器的,但我在Safari中进行测试 - 这是一个iPad应用程序.
提前致谢
我有以下测试PHP代码:
header('Content-type: text/html; charset=utf-8');
$text = 'Développeur Web';
var_dump($text);
$text = preg_replace('#[^\\pL\d]+#u', '-', $text);
var_dump($text);
$text = trim($text, '-');
var_dump($text);
$text = iconv('utf-8', 'us-ascii//TRANSLIT', $text);
var_dump($text);
$text = strtolower($text);
var_dump($text);
$text = preg_replace('#[^-\w]+#', '', $text);
var_dump($text);Run Code Online (Sandbox Code Playgroud)
在我的本地机器上,它按预期工作:
string(16) "Développeur Web"
string(16) "Développeur-Web"
string(16) "Développeur-Web"
string(16) "D'eveloppeur-Web"
string(16) "d'eveloppeur-web"
string(15) "developpeur-web" Run Code Online (Sandbox Code Playgroud)
但在我的实时服务器上,它表现得很奇怪:
string 'Développeur Web' (length=16)
string '-pp-' (length=4)
string 'pp' (length=2)
string 'pp' (length=2)
string 'pp' (length=2)
string 'pp' (length=2)Run Code Online (Sandbox Code Playgroud)
本地机器是运行PHP版本5.2.4的Windows,而实时服务器是运行PHP版本5.2.10的CentOS,所以它们不相同,我知道并不理想.
有没有人经历过类似的事情,能指出我正确的方向?我假设它是某种与UTF-8或locale相关的服务器或PHP配置.
提前谢谢了