我想知道是否可以编写一些 .htaccess 页面,使服务器使用单个目录中的 index.php 文件作为服务器上每个目录/子目录的索引文件,而不是将完全相同的 index.php 放在 200 多个目录中。如果我的描述不清楚,我的意思基本上是:/files/index.php 将用作例如 /files/morefiles 的索引,以及 /files/ 内所有目录和子目录的索引,即使这些目录本身没有索引文件。提前感谢大家。
编辑:php 文件根据目录生成不同的输出;具体来说,如果设置了某个 cookie,它会列出当前目录的内容。因此,不幸的是,URL 重写不起作用。
答案1
答案2
最简单的方法是在“主”目录中使用简单的 .htaccess:
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(*.)$ index.php [QSA]
RewriteRule (^|/)?index.php index.php [QSA]
如果需要切换工作目录,在index.php中:
<?php
chdir(realpath(dirname($_SERVER['DOCUMENT_ROOT'].parse_url($_SERVER['REQUEST_URI'],PHP_URL_PATH))));
?>
如果您仍在 /files 目录或更低目录中,可能会进行一些检查。