我在使用Apache 2在子目录中自动加载index.html时遇到问题。自动加载index.html适用于根目录。
你知道,为了使事情变得通用,我的Web应用程序被编写成每个模块都驻留在它自己的子目录中。每个文件夹有3个文件 - 前端的index.html(包含html + javascript),后端的index.php(包含访问数据库的php代码)和index.css的样式。
因此,要访问Web应用程序中的各个模块:
[概述模块] - http://xyz.com/overview?id=1234567890
[详情模块] - http://xyz.com/details?id=1234567890
如果没有子目录的自动加载机制,则无法实现上述目标。
我将不胜感激任何帮助。 非常感谢!
答案 0 :(得分:8)
最后与同事解决了这个问题。
httpd.conf中指定的默认DirectoryIndex对我们不起作用。 即使我们的序列是'index.html',然后'index.php',Apache2 将首先提供'index.php'。只有'index.php'不是 出现在同一文件夹中,然后提供'index.html'。
我们找到了两种方法来克服这个问题:
假设您的doc root是'/ var / www / html',
[Method 1] 1. Add a .htaccess to the root directory of your web app (e.g. /var/www/html/myapp). 2. Add the line 'DirectoryIndex index.html' to the .htaccess. 3. In httpd.conf, set 'AllowOverride' to 'All' under <Directory '/var/www/html'>.
[Method 2] 1. In httpd.conf, add 'DirectoryIndex index.html' under <Directory 'var/www/html'>. (note: this 'DirectoryIndex' is different from the default DirectoryIndex that is not enclosed within any tag.)
重新启动网络服务器。
希望这可以帮助某人。谢谢!
答案 1 :(得分:1)
您可以在 .htaccess
文件中使用以下行:
DirectoryIndex index.html
当您不控制服务器配置时,这很实用,例如,如果您使用 Gitlab Pages。