Omdiriger en webadresse fra en server til en anden server i Apache


Som lovet i vores tidligere to artikler (Vis tilpasset indhold baseret på browser) vil vi i dette indlæg forklare, hvordan man udfører en omdirigering til en ressource, der er flyttet fra en server til en anden server i Apache ved hjælp af mod_rewrite-modulet.

Antag at du redesigner din virksomheds intranetwebsted. Du har besluttet at gemme indholdet og stylingen (HTML-filer, JavaScript og CSS) på en server og dokumentationen på en anden - måske en mere robust.

Du vil dog have, at denne ændring skal være gennemsigtig for dine brugere, så de stadig er i stand til at få adgang til dokumenterne ved den sædvanlige URL.

I det følgende eksempel er en fil med navnet assets.pdf flyttet fra/var/www/html i 192.168.0.100 (værtsnavn: web) til den samme placering i 192.168.0.101 (værtsnavn: web2) .

For at brugere kan få adgang til denne fil, når de gennemsøger til 192.168.0.100/assets.pdf , skal du åbne Apache's konfigurationsfil den 192.168.0.100 og tilføje følgende omskrivningsregel (eller du kan også tilføje følgende regel til din .htaccess-fil):

RewriteRule "^(/assets\.pdf$)" "http://192.168.0.101$1"  [R,L]

hvor $ 1 er en pladsholder for alt, der matcher det regulære udtryk inden for parenteser.

Gem nu ændringer, glem ikke at genstarte Apache, og lad os se, hvad der sker, når vi forsøger at få adgang til assets.pdf ved at bladre til 192.168.0.100/assets.pdf:

I ovenstående nedenfor kan vi se, at den anmodning, der blev fremsat om aktiver.pdf den 192.168.0.100, faktisk blev håndteret af 192.168.0.101.

# tail -n 1 /var/log/apache2/access.log

I denne artikel har vi diskuteret, hvordan man udfører en omdirigering til en ressource, der er flyttet til en anden server. For at afslutte, vil jeg kraftigt anbefale, at du kigger på Apache-omdirigeringsguiden til fremtidig reference.

Som altid er du velkommen til at bruge kommentarformularen nedenfor, hvis du er bekymret for denne artikel. Vi ser frem til at høre fra dig!