2012-12-09 38 views
-1

即使在這個論壇中,我發現至少有一打這個錯誤的條目,還有很多外部的。基本上都說在<Directory></Directory>裏面,我有「拒絕所有」指令,並且沒有「允許」指令。由tomcat服務器配置拒絕的客戶端

我無法編寫一個固定的目錄進行匹配,因爲它是由後端tomcat服務器實時創建的。

當我進入 「myUrl /測試/請求/ USER1/1234567890 /下載」,我得到

403禁止:您沒有權限訪問/測試/請求/ USER1/1234567890 /下載。

httpd的錯誤日誌顯示:

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

的部分以「test」開始由後端的Tomcat,其中「用戶1」和「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中的「測試」片段實際上是tomcat中的/ webapps目錄內的「上下文」。在「測試」上下文中的所有者是tomcat,但我已經爲每個人添加了讀取權限。

回答

-1

首先,我不得不 「拒絕所有」 那時,我重新安排重寫規則,重定向 「/數據」

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

爲 「/」

Directory 
    Deny from all 
/Directory 

只有這樣, 「允許所有」, ProxyPass,ProxyPassReverse裏面的

VirtualHost *:80 
/VirtualHost 

它的工作!

相關問題