Wyszukiwanie w witrynie

Przekieruj żądania witryny internetowej w oparciu o używaną przeglądarkę (Chrome, Firefox lub IE)


Zgodnie z obietnicą z poprzedniego artykułu (Jak wykonać wewnętrzne przekierowanie za pomocą mod_rewrite), w tym poście wyjaśnimy, jak wyświetlić niestandardową zawartość witryny za pomocą żądań przekierowań Apache mod_rewrite w oparciu o kryteria przeglądarki użytkownika.

Teoretycznie wszystkie nowoczesne przeglądarki powinny jednakowo interpretować treści. Jednak niektóre wdrażają najnowsze funkcje szybciej niż inne. Aby mieć w pełni funkcjonalną stronę internetową, która nie psuje się podczas przeglądania w określonej przeglądarce. Niestety będzie to wymagało przekierowania do innego katalogu lub strony.

Sugerowana lektura: 5 wskazówek pozwalających zwiększyć wydajność serwera internetowego Apache

Poniższe reguły przepisywania będą przekierowywać żądania dotyczące tecmint.html do tecmint-chrome.html, tecmint-firefox.html lub tecmint -ie.html w zależności od używanej przeglądarki (Google Chrome, Mozilla Firefox lub Internet Explorer).

W tym celu do identyfikacji przeglądarki na podstawie ciągu znaków użytkownika używana jest zmienna środowiskowa HTTP_USER_AGENT. Tutaj wprowadzamy dyrektywę RewriteCond, która pozwala nam określić warunek, jaki musi zostać spełniony, aby przekierowanie nastąpiło.

RewriteCond "%{HTTP_USER_AGENT}"  ".*Firefox.*"
RewriteRule "^/tecmint\.html$"     	"/tecmint-firefox.html" [R,L]
RewriteCond "%{HTTP_USER_AGENT}"  ".*Chrome.*"
RewriteRule "^/tecmint\.html$"     	"/tecmint-chrome.html" [R,L]
RewriteCond "%{HTTP_USER_AGENT}"  ".*Trident.*"
RewriteRule "^/tecmint\.html$"     	"/tecmint-ie.html" [R,L]

Pamiętaj, że strona docelowa tecmint.html nie musi koniecznie istnieć. Najpierw utwórzmy pliki tecmint-firefox.html, tecmint-chrome.html i tecmint-ie.html z następującą zawartością.

tecmint-firefox.html:
<!DOCTYPE html>
<html>
  <head>
	<meta charset="utf-8">
	<title></title>
  </head>
  <body>
	<h3>Welcome to Tecmint on Firefox!</h3>
  </body>
</html>
tecmint-chrome.html:
<!DOCTYPE html>
<html>
  <head>
	<meta charset="utf-8">
	<title></title>
  </head>
  <body>
	<h3>Welcome to Tecmint on Chrome!</h3>
  </body>
</html>
tecmint-ie.html:
<!DOCTYPE html>
<html>
  <head>
	<meta charset="utf-8">
	<title></title>
  </head>
  <body>
	<h3>Welcome to Tecmint on Internet Explorer!</h3>
  </body>
</html>

zobaczymy wynik przeglądania tecmint.html przy użyciu różnych przeglądarek:

Jak widać, żądania tecmint.html zostały odpowiednio przekierowane w zależności od używanej przeglądarki.

W tym artykule omówiliśmy, jak wykonywać żądania przekierowań w oparciu o przeglądarkę użytkownika. Na koniec gorąco polecam zapoznanie się ze ściągawką mod_rewrite i dodanie do zakładek przewodnika po przekierowaniach i remapowaniu w dokumentach Apache, aby móc z nich skorzystać w przyszłości.

Jak zawsze, jeśli masz jakiekolwiek pytania lub uwagi dotyczące tego artykułu, możesz skorzystać z poniższego formularza komentarza. Oczekujemy na kontakt zwrotny!