ER DINE LYS KLARE?

Vi har en server, der er konfigureret til at betjene flere websteder.

Et af disse websteder er et WordPress-websted, og nogle af dets sider er virkelig Java-webapplikationer, der hostes af Tomcat. Java-webapplikationerne fremsætter en anmodning til localhost om at få sidehoveder og sidefødder, så de når deres sider indlæses, matcher alt WordPress-delene af webstedet.

Dette har forårsaget nogle interessante konfigurationsudfordringer på det seneste, da vi også for nylig har forsøgt at implementere "standard" -sites for at fange trafik, som apache ikke har nogen anden konfiguration til.

Hvad der sker nu er, at når Java-applikationer anmoder om det header.php fra localhost returnerer standardwebstedet (hvis servernavn er localhost) intet, fordi der ikke er sådan en fil i det bibliotek, hvor standardwebstedets indhold ligger.

Jeg forsøgte at rette dette med en omdirigering, så Java-applikationen blev omdirigeret til den korrekte URL til overskriften som denne:

 RewriteEngine on RewriteRule '.*header\.php' 'http://site1.mycompany.com/common-files/header.php' RewriteRule '.*footer\.php' 'http://site1.mycompany.com/common-files/footer.php' 

Dette løste tingene lidt: Nu når jeg prøver at indlæse en Java-baseret side, får jeg ikke en fejl, men jeg får:

Fundet. Siden er flyttet her

(hvor "her" er et link til header.php)

Dette er stadig et problem, da jeg har brug for indholdet af header.php, ikke link til header.php.

Er der en eller anden måde at gøre dette mere problemfrit, så Java-applikationerne ikke engang ved, at de har ramt en omdirigering?

Ideelt set ville jeg ændre Java-applikationerne for at håndtere dette lidt bedre, men det er uden for anvendelsesområdet (ikke mine applikationer, ikke min autoritet til at ændre dem).

  • Jeg konfigurerer mit standardwebsted til at tjene en 404 Not Found. Hvis nogen rammer min webserver med et ukendt værtsnavn, skal de få en fejl.
  • @StephenOstermiller: Vi har flere sider, og det blev besluttet at betjene en brugerdefineret side med en liste over gyldige websteder, der er hostet af denne server.
  • Så brug måske ikke den samme ramme til netop den side. Konfigurer bare en enkelt statisk side til dette formål. Du kunne endda have konfigureret som 404-siden.
  • @StephenOstermiller: Jeg tror måske jeg har forvirret dig, undskyld. Standardwebstedet og siden indlæses fint, nøjagtigt som de skal. Problemet er, at nu fordi der er et standardwebsted konfigureret til servernavnet "localhost", Java-applikationerne kan ikke hente deres sidehoved og sidefødder (de er ikke en del af standardwebstedet). Ting fungerede fint Før standardwebstedet blev tilføjet.

WordPress header og footer er ikke nødvendigvis designet til at få adgang til direkte. Selvom det fungerer, ville det ikke være nyttigt for klienten at skulle ringe til dem. Det virker også lidt sjusket at bygge dele af dit websted på separate servere.

Jeg vil anbefale at prøve at finde en anden løsning. Hvis du er nødt til at trække indhold fra dit Java-sted over internettet, kan en mulighed være at få dit WordPress-sted til at tjene en for det meste tom side, måske med en lille kommentar i stedet for kroppen, og så kan du trække det direkte med Java og udskift denne kommentar med din nye krop, før du serverer den.

Du nævner dog, at servernavnet til ressourcen er "localhost". Det har to vigtige konsekvenser. For det første at værten muligvis ikke håndterer opkald til "localhost" som du forventer på grund af VirtualHost-poster, så se om det er et problem. Den vigtigere faktor er dog, at du er på samme server med scriptet.

I stedet for at foretage opkald over internettet, som tager tid og har overhead, kan du samle dataene direkte fra PHP-scriptet. For eksempel kan du foretage et systemopkald til php giver den fulde vej til scriptet. Du skal muligvis indstille nogle miljøvariabler, f.eks HTTP_HOST og REQUEST_URI, men hvad du end gør direkte gennem PHP vil være renere og hurtigere end at skulle håndtere en netværksforbindelse og en webserver, og din klient behøver ikke blive involveret.

  • Desværre er omskrivning af disse Java-applikationer det godt uden for rækkevidden af ​​hvad jeg skal gøre. WordPress-siden serverer indhold på nogle sider, men andre "sider" serveres virkelig af Java-applikationer, der hostes af Tomcat, og ved hjælp af sidehoved og sidefod til at samle alt udseende og fornemmelse.

Det ser ud til, at jeg har brug for at omskrive som proxy, da jeg omskrev til en URL. Indtil videre ser det ud til at fungere fint:

 RewriteRule '.*header\.php' 'http://site1.mycompany.com/common-files/header.php' [P,L] RewriteRule '.*footer\.php' 'http://site1.mycompany.com/common-files/footer.php' [P,L] 

arbejdet for dig: Charles Robertson | Ønsker du at kontakte os?

nyttige oplysninger