.htaccess RewriteCond -s(文件存在)

时间:2011-03-04 16:56:26

标签: apache drupal .htaccess mod-rewrite

我把头发拉出来......

尝试让Drupal Boost在实时环境中工作。它可以在我的开发机器上运行,但在实现它时会遇到问题。

它依赖于.htaccess重写规则来检查缓存目录中是否有静态html文件,如果有,则使用此文件重写。

除了核心重写规则之外,我已经删除了所有内容,所以它看起来像这样:

RewriteCond %{DOCUMENT_ROOT}/cache/normal/%{SERVER_NAME}%{REQUEST_URI}_%{QUERY_STRING}\.html -s
RewriteRule .* cache/normal/%{SERVER_NAME}%{REQUEST_URI}_%{QUERY_STRING}\.html [L,T=text/html]

重写条件似乎不起作用(检查我的开发环境与实际环境相比会发生什么)。基本上它是检查文件系统中是否存在%{DOCUMENT_ROOT} / cache / normal /%{SERVER_NAME}%{REQUEST_URI} _%{QUERY_STRING} .html(使用-s标志)。

来自apache:

“将TestString视为路径名并测试它是否存在,并且是一个大小大于零的常规文件。”

我有:

  1. 确保文件存在
  2. 检查文件权限(即使这应该无关紧要,因为apache已经创建了apache检查文件)
  3. 尝试更改%{DOCUMENT_ROOT}以获取硬编码路径,例如/var/www/vhosts/mywebsite.com/httpdocs/cache/normal/www.mywebsite.com /
  4. 任何人都可以建议前进的方法,或者尝试解决这个问题吗?

    我看过Drupal论坛,但在我看来这是一个.htaccess问题。

    有没有人有使用-s的经验?

1 个答案:

答案 0 :(得分:1)

你能看到实际的html文件吗?

example.com/cache/normal/example.com / _。HTML