ProxyPass 404 döndürdüğünde Apache Httpd Özel ErrorDocument 404


9

Proxy Pass kullanarak başka bir uygulama sunucusunun önünde bir Apache web sunucum var. Uygulama isteği 404 hatası verdiğinde, uygulama sunucusundan gelen web sunucusundan değil özel hata sayfası göstermek istiyorum. Sanal ana bilgisayardaki ErrorDocument 404'ü kurmaya çalıştım, ancak çalışmıyor. Bunu nasıl yapmalıyım? Yoksa bu mümkün değil mi?

<VirtualHost *:80>
  ServerName servername
  DocumentRoot /somepath/
  ProxyPass / http://localhost:8080/someapp/
  ProxyPassReverse / http://localhost:8080/someapp/

  ErrorDocument 404 /error.html
</VirtualHost>

Yanıtlar:


12

!Proxy hedefi yerine bir belirterek, belirli bir dizin için proxy'den kaçınabilirsiniz . Bir dizinde çalıştığı error.htmliçin bir alt dizine geçin (diyelim errors) ve:

<VirtualHost *:80>
  ServerName servername
  DocumentRoot /somepath/
  ProxyPass /errors !
  ProxyPass / http://localhost:8080/someapp/
  ProxyPassReverse / http://localhost:8080/someapp/
  ProxyErrorOverride On
  ErrorDocument 404 /errors/error.html
</VirtualHost>

Maalesef, yapılandırma bazı ayrıntılardan yoksun, ama istediğim şey proxy geçişinden dönen 404 hatasını yakalamak ve bunun yerine error.html'yi göstermektir.
hendry.fu

1
Teşekkürler, geçersiz kılmanın yolunu buldum, sadece ProxyErrorOverride yönergesini kullanabilirim
hendry.fu 17:11

@satyavirya İyi yakaladım, bunu gelecekteki araştırmacılar için cevaba ekleyeceğim.
Shane Madden

ProxyErrorOverride ipucu için teşekkürler, ama ben zaten düzeltilmesi gereken 2.4.11 önce Apache 2.4 kullanırken bir hata olduğunu buldum: bz.apache.org/bugzilla/show_bug.cgi?id=53420 ... belki sadece geçici çözüm proxytimeout azaltmak için olurdu ?!
FibreFoX

ProxyPass /errors !gerçekten bana yardımcı oldu!
NullIsNot0
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.