客户端使用tomcat拒绝服务器配置

时间:2012-12-09 07:39:03

标签: regex apache tomcat permissions

即使在这个论坛中,我已经找到了至少十二个此错误的条目。所有人基本上都说在<Directory></Directory>内,我有“拒绝所有”指令,没有“允许”指令。

我无法写一个固定目录来匹配,因为它是由后端tomcat服务器即时创建的。

当我输入“myUrl / test / request / user1 / 1234567890 / download”时,我得到了

  

403 Forbidden:您无权访问/ test / request / user1 / 1234567890 / download。

httpd错误日志显示:

[error] [client xxx.xx.xx.xxx] client denied by server configuration: /data/test, referer: myUrl/test/request/user1/1234567890

以“test”开头的部分由后端tomcat创建,其中“user1”和“1234567890”不同,而目录结构的其他部分保持不变。

在我的httpd.conf中,我确实有:

<VirtualHost *:80>    
    DocumentRoot /data
    ---
    ---
    RewriteRule ^/test - [L]
    ---
</VirtualHost>

我该如何解决这个问题?即使我创建了另一个并创建另一个文档根目录,我也需要一个正则表达式。在外面的某个地方,我试过这个:

<Directory "/data/test/request/*/*/download">
    Options -Indexes -FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

但没有成功。

我正在使用“ajp”与后端tomcat交谈并拥有必要的模块,我可以telnet后端tomcat服务器(在8009上)。所以它不应该是ajp通信问题。

上面url中的“test”部分实际上是tomcat内部/ webapps目录中的“上下文”。该“测试”上下文中的所有者是tomcat,但我已经为每个人添加了读取权限。

1 个答案:

答案 0 :(得分:-1)

首先,我不得不“拒绝所有”为“/”

Directory  
    Deny from all
/Directory

只有“允许所有人”才能获得“/ data”

Directory /data
    ---
    ---
    Allow from all
/Directory

然后我在

内重新安排了RewriteRule,Redirect,ProxyPass,ProxyPassReverse
VirtualHost *:80 
/VirtualHost

它有效!