我在大约一个月前发布了this question关于使用Github Pages的自定义域名。我已经为用户/组织页面以及项目页面设置了所有设置并正常工作。
我现在的问题是:现在我已正确设置了项目页面,以便www.domain.com/project/
和project.domain.com
都可用,是否可以重定向可能访问" sub的用户-directory"更令人向往的"子域" URL?
我采访了GitHub支持他们说我可以使用javascript完成此重定向,但没有提供任何进一步的信息。他们显然不允许.htaccess
个文件或任何其他类型的服务器端重定向。有人有什么想法吗?
编辑:我知道应该使用window.location.replace();
这样做,所以我真正需要知道的是这个代码片段应该在repo中的位置。
答案 0 :(得分:3)
如果您希望通过JavaScript将用户从www.domain.com/project/
重定向到project.domain.com
,可以将以下代码段添加到网址上存在的任何资源中:
var location = window.location;
if (
location.hostname == "www.domain.com"
&& location.pathname.indexOf("/project") == 0
) {
location.replace("http://project.domain.com");
}
(假设www.domain.com/project/
处的资源是一个可以包含JavaScript的HTML页面。)您希望尽可能将其添加到页面顶部以减少数量重定向之前的时间(当它发生时)。
顺便说一句:我建议不重定向用户并使用canonical URLs通知网络抓取工具您最喜欢的网址。也就是说,将以下内容添加到<head>
:
<link rel="canonical" href="http://project.domain.com">
重定向用户,特别是在整个页面加载并且JS有时间执行之后,用户体验非常糟糕。
答案 1 :(得分:1)
虽然您可以使用JavaScript执行此操作,但最好使用META tags for SEO purposes。您可以将这些标记添加到www.domain.com/project/
页面的标题部分:
<link rel="canonical" href="http://project.domain.com"/>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta http-equiv="refresh" content="0;url=http://project.domain.com" />
这些代码会指定一个规范页面(有助于防止&#34;重复内容&#34;来自Google的SEO惩罚),并通过page refresh启动重定向,延迟时间为0秒。
此处&#39; sa sample page(由Jekyll Alias Generator plugin生成)使用此技术将登陆/register2
的访问者重定向到预定目的地/register