如何避免錯誤 403 Forbidden:Apache 虛擬主機配置問題
我是 Apache 伺服器的新手(2.0,我知道它有點太舊了,但是我的工作場所要求我學習它,因為它是我們正在使用的版本),現在試圖讓 Apache 與 Jboss 一起工作(Jboss as應用程序伺服器,Apache 前端 JBoss 並提供所有靜態內容)。
在 mod_jk 的幫助下,我讓 Apache 與 Jboss 一起工作;但是,當我嘗試添加虛擬主機配置以使 Apache 提供來自特定文件夾的圖像而不是推動 JBoss 提供靜態內容時,我收到 403 Forbidden 錯誤。
我瀏覽了幾個論壇和其他網站來尋找這個問題的答案或解決方案,遺憾的是似乎沒有任何東西對我有用!:(
請問有人可以幫我嗎?一點解釋將是一個受歡迎的補充。
以下是我在 httpd.conf 文件中的虛擬主機定義。
<VirtualHost *:80> ServerAdmin admin@localhost ServerName localhost DocumentRoot "D:/Dev-Ops/apache/Apache2/htdocs/jboss/" <Directory "D:/Dev-Ops/apache/Apache2/htdocs/jboss/"> AllowOverride All Order Allow,Deny Allow from all Require all granted </Directory> #rewrite incoming requests RewriteEngine On RewriteCond /SchoolApp%{REQUEST_FILENAME} !-f RewriteRule ^/(.*)$ http://localhost:8080/SchoolApp/$1 [proxy,last] </VirtualHost>
您的幫助將不勝感激。
PS:在嘗試了其他幾個此類說明後,我正在關注此連結。
最後我自己弄清楚了。Mod-Jk 有 JkMount 和 JkUnMount 指令來完成內容的重定向。
<VirtualHost *:80> ServerAdmin admin@localhost.com DocumentRoot "D:\Dev-Ops\apache\Apache2\htdocs" ServerName localhost.com JkMount /SchoolApp/* loadbalancer JkMount /SchoolApp loadbalancer JkUnMount /SchoolApp/*jpg loadbalancer JkUnMount /SchoolApp/*.html loadbalancer </VirtualHost>
JkMount /SchoolApp/*
將來自 Apache 的所有請求重定向到 jboss Web 應用程序 SchoolApp(這裡:http ://localhost.com:8080/SchoolApp/ );因為我使用過
JkUnMount /SchoolApp/*jpg loadbalancer
它,它不會將任何對jpg文件的請求重定向到 jboss,而是會SchoolApp/
在下面查找文件夾"D:\Dev-Ops\apache\Apache2\htdocs"
並從那裡提供圖像,我在下面有一個適當的目錄結構,它模仿了我請求的 jpg 文件的目錄結構Jboss Web 應用程序。例如,如果我請求http://localhost.com/SchoolApp/,mod-jk 會將請求重定向到http://localhost.com:8080/SchoolApp/>;如果我請求<http://localhost.com/SchoolApp/welcome.jpg>,這個請求不會被重定向到<http://localhost.com:8080/SchoolApp/welcome.jpg,即使在下面有這樣的文件jboss 應用程序,它會在 apache 的 htdocs/SchoolApp/ 文件夾下查找 welcome.jpg,如果welcome.jpg 存在,它將從那裡提供文件。
我希望這能解釋它。