php - 如果 install.php 存在,则访问 install.php,否则访问 index.php

标签 php regex apache .htaccess mod-rewrite

在访问我的 php 脚本之前,用户需要访问 install.php 并配置该脚本。 install.php 完成后将自行删除。删除install.php后,用户必须能够访问index.php

我尝试过的:

RewriteEngine On
RewriteBase /myscript/
RewriteRule ^ install.php [E]

如果 install.php 不存在,我可以将用户重定向到 install.php,但不能重定向到 index.php。

我不知道 RewriteCond 来检查 install.php 是否存在:

RewriteEngine On
RewriteBase /myscript/
RewriteCond ?? ??
RewriteRule ^ install.php [E]

感谢任何帮助。顺便说一句,我一点也不擅长 .htaccess 配置。

更新:

感谢您的评论和回复。是的,我知道我可以通过我的 php 脚本进行重定向,例如:

if(file_exists('install.php')){
     header('Location: http://'.$domain.'/install.php');
}

但是我们可以对 .htaccess 做同样的事情吗?

最佳答案

尝试将其添加到 myscript 文件夹中的 .htaccess 文件中:

RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}/myscript/install.php -f
RewriteRule ^ install.php [L]

说明

  • 条件检查文件 install.php 是否存在于 myscript 文件夹中
  • 如果满足条件,规则会将任何请求(因为字符串 anchor ^ 的开头将匹配任何文件)重写为 install.php

关于php - 如果 install.php 存在,则访问 install.php,否则访问 index.php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24886968/

相关文章:

php - 文件信息函数 PHP

php - 来自 Twitter API 的 JSON 包含\u2019

php - require_once() 允许本地主机 URL

php - 带有 PHP 7.1 的 Symfony 3 给定 ICU 版本的国际扩展

php - MySQL Master <-> Slave、PDO、Zend 框架和事务

php - Mysql 多个左连接在同一个表上

python - 如何按字符串中最后找到的数字拆分字符串?

python - 限制 tk 小部件上的条目

python - 开启正则表达式匹配

regex - Htaccess - 重定向除一个 URL 之外的所有 URL