【问题标题】:"ExpiresDefault access" vs. "ExpiresDefault access plus zero seconds"“ExpiresDefault 访问”与“ExpiresDefault 访问加零秒”
【发布时间】:2011-12-17 01:35:58
【问题描述】:

在 Apache 配置文件或 .htaccess 文件中,ExpiresDefault "access"ExpiresDefault "access plus zero seconds" 之间有什么区别吗?

它们完全一样吗?

第二个有效吗?

【问题讨论】:

    标签: apache .htaccess apache2 http-headers httpd.conf


    【解决方案1】:

    第二个应该说0而不是zero

    来自手册:

    ExpiresDefault 和 ExpiresByType 指令也可以用更易读的语法定义:

    ExpiresDefault "<base> [plus] {<num> <type>}*"
    ExpiresByType type/encoding "<base> [plus] {<num> <type>}*"
    

    &lt;base&gt; 是其中之一:

    access
    now (equivalent to 'access')
    modification
    

    “加号”关键字是可选的。 &lt;num&gt; 应该是一个整数值 [atoi() 可接受],&lt;type&gt; 是以下之一:

    years
    months
    weeks
    days
    hours
    minutes
    seconds
    

    ExpiresDefault "access plus zero seconds" 可能被用于作者在某个时间点有时间加法但忘记了 0 与 0 不同的地方!

    【讨论】:

    • 我认为语法定义末尾的星号表示“0次或多次”,大括号表示它是numtype作为一个单元必须出现 0 次或多次。奇怪的是,httpd.apache.org/docs/2.2/mod/directive-dict.html#Syntax 没有解释星号和花括号。基于此,我可能认为“0 次或多次”会写成“[whatever] ...”
    • 是的,没错。他们给出的示例是 ExpiresByType text/html "access plus 1 month 15 days 2 hours",展示了如何重复 num 类型位。我认为 * 表示多次,而 {} 表示可选单位。假设 [] 表示可选部分,而 表示强制...如果他们解释一下就好了!
    • 看起来文档可以使用一些小而重要的说明。我已经提交了一个错误:issues.apache.org/bugzilla/show_bug.cgi?id=52112
    猜你喜欢
    • 1970-01-01
    • 2016-12-17
    • 2017-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-30
    相关资源
    最近更新 更多