Przekieruj adres URL witryny z jednego serwera na inny serwer w Apache
Zgodnie z obietnicą z naszych poprzednich dwóch artykułów (Wykonaj wewnętrzne przekierowanie za pomocą mod_rewrite i Pokaż niestandardową zawartość w oparciu o przeglądarkę), w tym poście wyjaśnimy, jak wykonać przekierowanie do zasobu, który został przeniesiony z jednego serwera na inny serwer w Apache przy użyciu moduł mod_rewrite.
Załóżmy, że przeprojektowujesz witrynę intranetową swojej firmy. Zdecydowałeś się przechowywać treść i styl (pliki HTML, JavaScript i CSS) na jednym serwerze, a dokumentację na innym – być może solidniejszy.
Sugerowana lektura: 5 wskazówek pozwalających zwiększyć wydajność serwera internetowego Apache
Chcesz jednak, aby ta zmiana była niewidoczna dla użytkowników, aby nadal mogli uzyskiwać dostęp do dokumentów pod zwykłym adresem URL.
W poniższym przykładzie plik o nazwie assets.pdf
został przeniesiony z /var/www/html w 192.168.0.100 (nazwa hosta: web) do tej samej lokalizacji w 192.168.0.101 (nazwa hosta: web2).
Aby użytkownicy mieli dostęp do tego pliku podczas przeglądania 192.168.0.100/assets.pdf
, otwórz plik konfiguracyjny Apache na 192.168.0.100 i dodaj następującą regułę przepisywania (lub możesz także dodać następującą regułę do swojego pliku .htaccess):
RewriteRule "^(/assets\.pdf$)" "http://192.168.0.101$1" [R,L]
gdzie $1
jest symbolem zastępczym wszystkiego, co pasuje do wyrażenia regularnego w nawiasach.
Teraz zapisz zmiany, nie zapomnij zrestartować Apache i zobaczmy, co się stanie, gdy spróbujemy uzyskać dostęp do pliku assets.pdf, przechodząc do 192.168.0.100/assets.pdf:
Sugerowana lektura: 25 przydatnych trików „.htaccess” dla stron internetowych
Na powyższym obrazku widać, że żądanie dotyczące assets.pdf złożone w dniu 192.168.0.100 zostało faktycznie obsłużone przez 192.168.0.101.
tail -n 1 /var/log/apache2/access.log
W tym artykule omówiliśmy, jak wykonać przekierowanie do zasobu, który został przeniesiony na inny serwer. Podsumowując, zdecydowanie sugeruję zapoznanie się z przewodnikiem po mod_rewrite i przewodnikiem po przekierowaniach Apache do wykorzystania w przyszłości.
Jak zawsze, jeśli masz jakiekolwiek wątpliwości dotyczące tego artykułu, możesz skorzystać z poniższego formularza komentarza. Oczekujemy na kontakt zwrotny!