如何在apache Web服务器中启用目录列表

时间:2016-08-31 01:10:58

标签: apache httpd.conf

我无法在我的apache Web服务器中启用目录列表。我尝试了各种解决方案,但没有工作。我刚刚安装了httpd 2.4.6,并使用/etc/httpd/conf.d/ssl.conf目录下的ssl.conf启用了https,并试图访问https://server.example.com/,但这并没有列出dir。这些是ssl.conf中的配置

DocumentRoot "/home/userx/Downloads/"
ServerName server.example.com:443

以下是VirtualHost元素下ssl.conf中的内容。我安装时文件和第一个Directory元素已经存在,我刚为“/ home / userx / Downloads”添加了Directory。我想在访问URL https://server.example.com/时浏览/ home / userx / Downloads的内容。我在这里缺少什么?

<Files ~ "\.(cgi|shtml|phtml|php3?)$">
    SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>
<Directory "/home/userx/Downloads">
  Options +Indexes
  AllowOverride all
</Directory>

8 个答案:

答案 0 :(得分:16)

查看您是否能够访问/列出'/ icons /'目录。这对于测试Apache中的Directory行为非常有用。

例如:你可能在你的httpd.conf文件中默认配置低于配置。所以点击网址:IP:端口/图标/并查看它是否列出了图标。你也可以试试把'目录/文件夹'在'var / www / icons'中。

Alias /icons/ "/var/www/icons/"

<Directory "/var/www/icons">
    Options Indexes MultiViews
    AllowOverride None
    Require all granted
</Directory>

如果确实有效,那么您可以使用“配置”交叉检查或修改自定义目录配置。

答案 1 :(得分:4)

我通过启用Apache的mod_autoindex解决了这个问题。它默认是禁用的。

sudo a2enmod autoindex

答案 2 :(得分:4)

根据Apache文档found here,需要在站点DirectoryIndex文件中指定.conf指令(通常位于linux上的/etc/apache2/sites-available中)。

从文档引用,它写着:

  

如果DirectoryIndex指令中没有文件可以找到   目录,然后mod_autoindex可以生成目录列表   内容。使用Options指令打开和关闭此功能。对于   例如,为了打开特定目录的目录列表   可以使用:

<Directory /usr/local/apache2/htdocs/listme>   
  Options +Indexes
</Directory> 
     

为防止目录列表(例如出于安全目的),   你应该从每个Options指令中删除Indexes关键字   你的配置文件。或者只为一个人阻止它们   目录,你可以使用:

<Directory /usr/local/apache2/htdocs/dontlistme>
  Options -Indexes
</Directory>

答案 3 :(得分:3)

试试这个。

<Directory "/home/userx/Downloads">
  Options +Indexes
  AllowOverride all
  Order allow,deny 
  Allow from all 
  Require all granted
</Directory>

如果这不起作用,您可能会拒绝索引&#39;在某个地方覆盖你的配置。

答案 4 :(得分:0)

这个解决了我的问题,即SELinux设置:

chcon -R -t httpd_sys_content_t /home/*

答案 5 :(得分:0)

一种方法是通过创建到您要在/ var / www / html /目录中列出的目录的软链接。

public void regionDropDownList_SelectedIndexChanged(object sender, EventArgs e)
{

                regionDescriptionLabel.Text = regionDropDownList.SelectedItem.Text; // If value needed then regionDropDownList.SelectedValue

    }

请牢记安全性。

答案 6 :(得分:0)

我必须明确删除欢迎页面并重新启动服务才能查看我的目录列表。

$ sudo rm -rf /etc/httpd/conf.d/welcome.conf
$ sudo service httpd restart

答案 7 :(得分:0)

我必须禁用selinux才能使它工作。注意。需要重新启动系统才能使selinux生效。