我已阅读 this article from Google .
并将这些 meta 标记添加到每个页面的头部。
<link rel="alternate" href="http://www.theaustralianwebsite.com.au/" hreflang="en-au" />
<link rel="alternate" href="http://www.thegeneralwebsite.com/" hreflang="x-default" />
如您所见,我们为澳大利亚访问者提供了一个完全不同的网站的不同域。不仅是相同的内容本地化,而且一切都不同。
将访问通用网站的澳大利亚人重定向到澳大利亚网站的最佳方法是什么? 一位 SEO 专家建议我使用一个数据库,该数据库将 ip 地址映射到国家并基于此进行重定向。我更喜欢基于第一个客户端浏览器语言设置的解决方案。像这样http://www.w3.org/International/questions/qa-accept-lang-locales
那么对我来说重定向用户的最佳解决方案是什么?我应该使用 javascript 还是服务器端解决方案(在我的例子中是 C# .net,像这样 https://support.microsoft.com/en-us/kb/208935 )
protected void Page_Init(object sender, EventArgs e)
{
if (HttpContext.Current != null && HttpContext.Current.Request.UserLanguages != null)
{
string culture = Request.UserLanguages[0].ToLower();
if (culture.Contains("au"))
Response.Redirect("http://www.theaustralianwebsite.com.au/");
}
}
最佳答案
我会尝试将我的答案分解成多个部分。
通过IP识别国家
有许多免费和付费服务可以将 IP 地址地理映射到一个国家; MaxMind (商业)和 HostIP (免费但每天限制 1000 个请求)是两个这样的服务。您会发现 MaxMind 的准确性很高,HostIP 的覆盖率也很高。
我强烈建议使用服务而不是构建您自己的检测和识别服务,因为要做到任何程度的准确度都非常困难。
可能值得一提的是,没有什么是 100% 准确的。例如,我住在澳大利亚,但可能会使用我的企业 VPN,它可以让我穿越新加坡。
重定向
我住在澳大利亚,经历过多次自动重定向到全局站点。作为客户,我可以告诉你这非常烦人,而且通常我无法尽快关闭浏览器选项卡。
在大多数情况下,自动重定向用户是不可取的,您应该简单地告知他们访问本地站点可能会获得更好的体验。有很多方法可以实现这一点,比如显示 alert or notification。 .
如果您担心提供良好的用户体验(您应该这样做),请尝试在 https://ux.stackexchange.com/ 上发帖提问
关于c# - 澳大利亚的地理特定页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29790983/
如何在ruby中调用C#dll? 最佳答案 我能想到几种可能性:为您的DLL编写(或找人编写)一个COM包装器,如果它还没有,则使用Ruby的WIN32OLE库来调用它;看看RubyCLR,其中一位作者是JohnLam,他继续在Microsoft从事IronRuby方面的工作。(估计不会再维护了,可能不支持.Net2.0以上的版本);正如其他地方已经提到的,看看使用IronRuby,如果这是您的技术选择。有一个主题是here.请注意,最后一篇文章实际上来自JohnLam(看起来像是2009年3月),他似乎很自在地断言RubyCL
我正在尝试在Ruby中复制Convert.ToBase64String()行为。这是我的C#代码:varsha1=newSHA1CryptoServiceProvider();varpasswordBytes=Encoding.UTF8.GetBytes("password");varpasswordHash=sha1.ComputeHash(passwordBytes);returnConvert.ToBase64String(passwordHash);//returns"W6ph5Mm5Pz8GgiULbPgzG37mj9g="当我在Ruby中尝试同样的事情时,我得到了相同sha
C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.
在读取/解析文件(使用Ruby)时忽略某些行的最佳方法是什么?我正在尝试仅解析Cucumber.feature文件中的场景,并希望跳过不以Scenario/Given/When/Then/And/But开头的行。下面的代码有效,但它很荒谬,所以我正在寻找一个聪明的解决方案:)File.open(file).each_linedo|line|line.chomp!nextifline.empty?nextifline.include?"#"nextifline.include?"Feature"nextifline.include?"Inorder"nextifline.include?
我正在我的Rails项目中安装Grape以构建RESTfulAPI。现在一些端点的操作需要身份验证,而另一些则不需要身份验证。例如,我有users端点,看起来像这样:moduleBackendmoduleV1classUsers现在如您所见,除了password/forget之外的所有操作都需要用户登录/验证。创建一个新的端点也没有意义,比如passwords并且只是删除password/forget从逻辑上讲,这个端点应该与用户资源。问题是Grapebefore过滤器没有像except,only这样的选项,我可以在其中说对某些操作应用过滤器。您通常如何干净利落地处理这种情况?
require'mechanize'agent=Mechanize.newlogin=agent.get('http://www.schoolnet.ch/DE/HomeDE.htm')agent.clicklogin.link_withtext:/Login/然后我得到Mechanize::UnsupportedSchemeError。 最佳答案 Mechanize不支持javascript但您可以将搜索字段添加到表单并为其分配搜索词并使用mechanize提交表单form=page.forms.firstform.add_fie
我有可变数量的表格和可变数量的行,我想让它们一个接一个地显示,但如果表格不适合当前页面,请将其放在下一页,然后继续。我已将表格放入事务中,以便我可以回滚然后打印它(如果高度适合当前页面),但我如何获得表格高度?我现在有这段代码pdf.transactiondopdf.table@data,:font_size=>12,:border_style=>:grid,:horizontal_padding=>10,:vertical_padding=>3,:border_width=>2,:position=>:left,:row_colors=>["FFFFFF","DDDDDD"]pdf.
据我们所知,Jekyll默认分页仅支持index.html,我想创建blog.html并在那里包含分页。有什么解决办法吗? 最佳答案 如果您创建一个名为/blog的目录并在其中放置一个index.html文件,那么您可以向_config.yml表示paginate_path:"blog/page:num"。不是使用根文件夹中的默认index.html作为分页器模板,而是使用/blog/index.html。分页器将根据需要生成类似/blog/page2/和/blog/page3/的页面。这将使您到达yourwebsite.com/b
我想知道我应该如何着手这个项目。我需要每周向人们发送一次电子邮件。但是,这必须在每周的特定时间自动生成并发送。编码有多难?我需要知道是否有任何书籍可以提供帮助,或者你们中的任何人是否可以指导我。它必须使用rubyonrails进行编程。因此有一个网络服务和数据库集成。干杯 最佳答案 为什么这么复杂?您只需安排工作。您可以使用Delayed::Job例如。Delayed::Job让您可以使用run_at符号在特定时间安排作业,如下所示:Delayed::Job.enqueue(SendEmailJob.new(...),:run_
如果特定语言环境中缺少翻译,如何配置i18n以使用en语言环境翻译?当前已插入翻译缺失消息。我正在使用RoR3.1。 最佳答案 找到相似的question这里是答案:#application.rb#railswillfallbacktoconfig.i18n.default_localetranslationconfig.i18n.fallbacks=true#railswillfallbacktoen,nomatterwhatissetasconfig.i18n.default_localeconfig.i18n.fallback