我在CentOS上使用Apache(httpd),并在Tomcat6上部署了Java / Struts Web应用程序。 我正在使用Mod_JK在Apache之间将请求转发到Tomcat。为了使此功能在SSL上有效,我遵循此堆栈流问题进行设置httpd.conf,mod_jk.conf。 当我使用HTTP调用同一Web应用程序时,此方法工作正常。 但是,通过HTTPS,我收到403错误。当我查看日志时,我发现以下条目
Options指令禁止的目录索引:/ var / lib / tomcat6 / webapps / myapp /,引用者:https://my domain IP
https://my domain IP
我尝试像下面这样在httpd.conf中设置目录,但得到相同的错误
<Directory "/var/lib/tomcat6/webapps/<myapp>"> Options +Indexes FollowSymLinks +ExecCGI AllowOverride AuthConfig FileInfo Order allow,deny Allow from all </Directory>
请注意,我尚未对Tomcat的Server.xml进行任何更改。 任何帮助。
编辑: 我创建了虚拟index.html并将其保留在我的应用程序根文件夹中。 然后我通过HTTPS从Web浏览器请求了相同的URL,你猜怎么着? 我可以看到我的index.html。但是,HTTP以正确的方式工作。 现在,谁能告诉我如何指导apache不要搜索任何 index.html, 而是将请求直接转发给tomcat。
编辑2: 当我尝试将目录选项更改为“索引FollowSymLinks包括ExecCGI”时,它开始显示目录列表。
有 ssl.conf中 存在的文件 conf.d 的文件夹 HTTPD 。你也看过那个文件吗? 该文件(如果存在)的优先级高于 httpd.conf 文件中写入的优先级。 请查看您是否为该文件提供了虚拟主机设置,或者在该文件中写入了错误的设置。您也可以通过注释 httpd.conf 文件中存在的虚拟主机进行检查,并检查 403 错误是否仍然存在。如果是这种情况,请确保Apache正在从其他文件加载设置。如果出现 404 错误,则可能需要设置其他一些内容。