Как мне обслуживать разные HTML-страницы в зависимости от страны пользователя? - PullRequest
3 голосов
/ 24 декабря 2011

Я использую Apache 2 и в настоящее время статические HTML-страницы.

Я хочу, чтобы мои посетители в еврозоне увидели страницу с ценой в евро.Мои посетители в Великобритании должны увидеть страницу с указанием цены в фунтах стерлингов.Всем, кому я хочу видеть цену в долларах.

Я понимаю, что этот вопрос больше подходит для https://superuser.com/, но я не знаю, является ли решение конфигурацией Apache 2 или мне нужно использовать код.

Изменить: я готов попробовать любое клиентское или серверное приложение.Мне не нужно конвертировать валюты - это фиксированная цена в евро, фиксированная цена в фунтах стерлингов и фиксированная цена в долларах.

Ответы [ 3 ]

1 голос
/ 24 декабря 2011

Я бы использовал для этого mod_rewrite:

RewriteEngine On

RewriteCond %{HTTP_HOST} =www.example.com [NC]
RewriteCond %{REMOTE_ADDR} ^192\.168\.1\.[0-9]+$ [OR]
RewriteCond %{REMOTE_ADDR} ^192\.168\.3\.[0-9]+$
RewriteCond %{PATH_INFO} =/

RewriteRule ^(.*)$ http://www.example.com/abc_euro.htm$1 [R=301,L]

RewriteCond %{HTTP_HOST} =www.example.com [NC]
RewriteCond %{REMOTE_ADDR} ^192\.168\.2\.[0-9]+$ [OR]
RewriteCond %{REMOTE_ADDR} ^192\.168\.4\.[0-9]+$
RewriteCond %{PATH_INFO} =/

RewriteRule ^(.*)$ http://www.example.com/abc_uk.htm$1 [R=301,L]

(Предполагая, что диапазоны 192.168.1.* и 192.168.3.* ip взяты из ЕС, а 192.168.2.* и 192.168.4.* из Великобритании)

Я не очень уверен в использовании RewriteCond %{PATH_INFO} =/ для обозначения "запроса к корневому пути" и, таким образом, для предотвращения бесконечных циклов перенаправления ... может быть, это можно сделать лучше, используя LocationMatch или около того ...?

0 голосов
/ 24 декабря 2011

Используя javascript что-то вроде:

ps ответ redShadow лучше: -)

0 голосов
/ 24 декабря 2011
...