如何使用Apache 2在子目录中自动加载index.html

时间:2011-06-20 02:01:36

标签: apache2

我在使用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

如果没有子目录的自动加载机制,则无法实现上述目标。

我将不胜感激任何帮助。 非常感谢!

2 个答案:

答案 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。