在访问我的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做同样的事吗?
答案 0 :(得分:2)
尝试将其添加到.htaccess
文件夹中的myscript
文件:
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}/myscript/install.php -f
RewriteRule ^ install.php [L]
<强>解释强>
install.php
是否存在于myscript
文件夹^
的开头将匹配任何文件)到install.php
答案 1 :(得分:1)
对于纯.htaccess
解决方案:
RewriteCond %{DOCUMENT_ROOT}/myscript/install.php -f
RewriteRule ^ /myscript/install.php [L]
答案 2 :(得分:1)
您可以使用DirectoryIndex
来实现您的目标(docs)。请在应用程序根目录的.htaccess
中进行此操作。
DirectoryIndex install.php index.php
RewriteEngine on
RewriteBase /myscript/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewrietRule . index.php [E]
如果用户进入安装了应用程序的目录,例如http://example.com/myscript/
,它将首先尝试加载install.php,如果不存在,它将尝试加载index.php。如果用户转到http://example.com/myscript/index.php
,您运气不好,但转到该网址没有意义!如果你担心,你最好使用romaneso的答案,一直加载index.php并在必要时从那里加载install.php。
答案 3 :(得分:0)
如果文件存在,我会尝试检查该方法
bool file_exists ( string $filename )