现状:
如果只有配置1没有配置2,且在
/var/www/html/test下存在配置1中DirectoryIndex 配置的文件时,返回配置的文件内容,如果不存在配置1中的文件时,访问http://源服务器的ip:port/test/时返回403,访问http://源服务器的ip:port/test 时返回301,location到http://源服务器的ip:port/test/。
想达到的结果:
用户访问http://源服务器的ip:port/test/或者http://源服务器的ip:port/test,如果存在配置项DirectoryIndex中的文件则返回,不存在返回test/ 目录下的文件列表。
解决方法:
加入配置2,且注意Options indexes 要放在Directory 中,否则不行。
httpd.conf部分配置:
DirectoryIndex index.html index.html.var【配置1】
irtualHost *:80
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /var/www/html
ServerName
ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common
ExpiresActive On
ExpiresDefault "access plus 0 minutes"
Directory /var/www/html
#Options Indexes FollowSymLinks MultiViews
Options indexes 【配置2】
/Directory
上面的配置写了但是保存了就显示不全了,完整配置可参见下面:
DirectoryIndex index.html index.html.var
配置成
Options -
Indexes 或者 Options Indexes FollowSymLinks 则不显示列表了
==========================================================================
备注下Option的参数:
Options指令是Apache配置文件中一个比较常见也比较重要的指令,Options指令可以在Apache服务器核心配置( config)、配置(virtual host)、特定目录配置(directory)以及.htaccess文件中使用。Options指令的主要作用是控制特定目录将启用哪些服务器特性。
Options指令的完整语法为:Options [+|-]option [[+|-]option] ...。简而言之,Options指令后可以附加指定多种服务器特性,特性选项之间以空格分隔。下面我们来看看Options指令后可以附加的特性选项的具体作用及含义(Apache配置中的内容均不区分大小写):
All
表示除MultiViews之外的所有特性。这也是Options指令的默认设置。
None
表示不启用任何的特性。
FollowSymLinks
服务器允许在此目录中使用符号连接。如果该配置选项位于配置段中,将会被忽略。
Indexes
如果输入的网址对应服务器上的一个文件目录,而此目录中又没有DirectoryIndex指令(例如:DirectoryIndex index.html index.php),那么服务器会返回由mod_autoindex模块生成的一个格式化后的目录列表,并列出该目录下的所有文件
MultiViews
允许使用mod_negotiation模块提供内容协商的"多重视图"。简而言之,如果客户端请求的路径可能对应多种类型的文件,那么服务器将根据客户端请求的具体情况自动选择一个最匹配客户端要求的文件。例如,在服务器站点的file文件夹下中存在名为hello.jpg和hello.html的两个文件,此时用户输入,如果在file文件夹下并没有hello子目录,那么服务器将会尝试在file下查找形如hello.*的文件,然后根据用户请求的具体情况返回最匹配要求的hello.jpg或者hello.html。
SymLinksIfOwnerMatch 仅在符号连接与目标文件或目录的所有者具有相同的用户ID时才使用它。简而言之,只有当符号连接和符号连接指向的目标文件或目录的所有者是同一用户时,才会使用符号连接。如果该配置选项位于配置段中,将会被忽略。
ExecCGI
允许使用mod_cgi模块执行CGI脚本。
Includes
允许使用mod_include模块提供的服务器端包含功能。
IncludesNOEXEC
允许包含,但禁用"#exec cmd"和"#exec cgi"。但仍可以从ScriptAlias目录使用"#include virtual"虚拟CGI脚本。
此外,比较细心的读者应该注意到,Options指令语法允许在配置选项前加上符号"+"或者"-"。
Option的参数更详细的参见:
阅读(1642) | 评论(0) | 转发(0) |