如果文件存在则 Apache 重写

标签 apache .htaccess mod-rewrite

如果根目录中存在offline.html,则重写它。

我创建了以下 .htaccess 文件并将其放置在根目录中:

RewriteCond offline.html -f
RewriteRule ^(.*) /offline.html [L]

由于某种原因,这不起作用。我在这里缺少什么?

最佳答案

这个条件总是会失败:

RewriteCond offline.html -f

因为-f需要您正在检查的文件的完整路径。

您可以在要检查的文件名之前使用 %{DOCUMENT_ROOT}(指向您网站根目录的 Apache 内部变量)以创建完整路径:

RewriteCond %{DOCUMENT_ROOT}/offline.html -f
RewriteRule ^ offline.html [L]

关于如果文件存在则 Apache 重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32634496/

相关文章:

apache - CKAN可以支持Solr 7.0吗?

python - 使用 spaCy NLP 的简单 Flask 应用程序间歇性挂起

php - .htaccess php_value display_errors 设置因错误 500 而中断

mod-rewrite - 使用 mod_rewrite 强制 SSL/HTTPS

php - 如何使用 htaccess 阻止垃圾邮件和垃圾邮件机器人?

php - .htaccess 的重定向不正确

php - 如何在 PhpStorm 中为在 Vagrant 中运行的 Laravel Web 应用程序正确设置 XDebug? (Mac 操作系统)

.htaccess - 如何编写 htaccess 重写规则来排除 IP 范围?

.htaccess - Apache 将所有 URL 重写为 https,但有 www + 一些异常(exception)

php 使用 htaccess mod_rewrite 检查 file_exists() 是否存在