2

我们的服务器上安装了 magento。印度用户有一个不同的网站。我们想要的是将印度观众重定向到这一点。印度网站位于/in文件夹中。

4

1 回答 1

2

如果“印度观众”是指来自印度 ISP 托管的 IP 地址的请求:

您可以尝试自己定位 IP 范围,方法是挖掘适当RIR的免费资源,在印度的情况下应该是APNIC

您也可以直接从一些商业 GeoIP/GeoLocation 服务获取 IP 范围,例如IP2LocationMaxMind。如果您不介意失去一些准确性,后者还提供名为Geolite Country的免费数据库下载。

知道 IP 范围后,您可以将它们用作重写条件,例如在RewriteCondMagento 根.htaccess文件中的指令中,或在 Magento 的index.phpusingheader()命令中。

RewriteCond例如两个印度 IP 范围 58.2.0.0 到 58.2.255.255 和 61.0.0.0 到 61.0.255.255:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REMOTE_ADDR} ^58\.2\. [OR]
    RewriteCond %{REMOTE_ADDR} ^61\.0\.
    RewriteRule ^(.*)$ in/$1 [R,L]
</IfModule>

查看印度 IP 范围的计数和不同类型,并且知道mod_rewrite不支持指令的CIDR表示法,我知道在 Magento中使用重定向是否会更高效。RewriteCondheader()index.php

也就是说,请注意基于 IP 地址的重定向并不是一件完美的事情。有成千上万的开放代理可用,隐藏/隐藏请求来自的真实 IP 地址。

于 2012-06-15T10:44:56.813 回答