2012-02-14 25 views
34

Dưới đây là một kho lưu trữ Github của tôi: https://github.com/n1k0/casperjsChuyển hướng 301 cho trang web được lưu trữ tại github?

Có một chi nhánh gh-pages để giữ tài liệu dự án, mà về cơ bản là trang web dự án: https://github.com/n1k0/casperjs/tree/gh-pages

chi nhánh này thiết lập các trang web tài liệu tại http://n1k0.github.com/casperjs/ - hurrah.

Trong khi đó, tôi đã cành cây domain casperjs.org để có được trang web này cung cấp thông qua nó, vì vậy tôi đặt một CNAME tập tin như recommended in the docs: https://github.com/n1k0/casperjs/blob/gh-pages/CNAME - trong ví dụ của họ, hoạt động có nghĩa vụ phải tạo chuyển hướng từ www.example .com và charlie.github.com đến example.com ...

trong khi trang web bây giờ chỉ vào http://casperjs.org/, không có 301 chuyển hướng từ http://n1k0.github.com/casperjs/ (url trang web cũ) với tên miền mới.

Bất kỳ ý tưởng nào về cách thiết lập chuyển hướng như vậy, nếu nó thậm chí có thể? Nó là một lỗi? Nếu có, tôi nên mở một vấn đề ở đâu?

+1

+1. Tôi cũng muốn trang của tôi là _only_ có thể truy cập thông qua tên miền. –

+1

bản sao có thể có của [Chuyển hướng vĩnh viễn từ Github gh-pages] (http://stackoverflow.com/questions/5302663/permanent-redirect-from-github-gh-pages) –

+0

ah, tôi thề tôi đã tìm kiếm kỹ lưỡng trước hỏi, tôi xin lỗi: $ Edit: hoàn toàn không giống với câu hỏi, và một số nhận xét sâu sắc đã được đăng dưới đây methinks :) – NiKo

Trả lời

25

Đưa chủ đề này trở lại từ cõi chết kể rằng GH bây giờ hỗ trợ chuyển hướng-từ của chuyển hướng đến tham số https://github.com/jekyll/jekyll-redirect-from#redirect-to

Đơn giản chỉ cần thêm video này vào _config.yml bạn

gems: 
    - jekyll-redirect-from 

Và điều này lên đầu trang chỉ mục của bạn.

--- 
redirect_to: "http://example.com" 
--- 
+4

Giải pháp tốt, nhưng điều đáng nói là đá quý này tạo trang html có chuyển hướng làm mới meta, thay vì chuyển hướng cấp http. –

+0

Có lỗi bố cục mặc định nghiêm trọng được sửa lỗi gần đây: https://github.com/jekyll/jekyll-redirect-from/pull/106, đợi nó ở đầu nguồn ;-) –

6

Bạn có thể chuyển hướng sử dụng Javascript sau khi phát hiện máy chủ, như thế này:

if (window.location.href.indexOf('http://niko.github.com') === 0) { 
    window.location.href = 'http://casperjs.org{{ page.url }}'; 
} 

Nhưng tôi đồng ý, nó không phải là một chuyển hướng HTTP.

+1

Vấn đề là nó đã thắng ' t giải quyết vấn đề "nội dung trùng lặp trên google" mà tôi đang gặp phải ngay bây giờ ...:/ – NiKo

+8

Trong thời gian chờ đợi, bạn có thể thêm rel = "canonical" vào trang của mình, do đó Google sẽ không khai báo các trang đó là "trùng lặp": http : //support.google.com/webmasters/bin/answer.py? hl = vi & answer = 139394 – cyberdelia

+0

Chắc chắn, cảm ơn bạn! – NiKo

9

Để tránh trùng lặp nội dung, trong một lần đầu tiên bạn có thể thêm một kinh điển meta như thế này:

<link rel="canonical" href="http://casperjs.org"> 
+1

Ah vâng tôi đã quên điều này, cảm ơn vì gợi ý :) Nhưng điều đó không giải quyết được vấn đề chính là thiếu chuyển hướng vĩnh viễn, thật không may :/ – NiKo

1

Tôi đã có một vấn đề tương tự khi chuyển đổi tên miền cho trang web của trang github của tôi. Tôi đã thiết lập rerouter trên Heroku để xử lý chuyển hướng 301 sang miền mới. Nó xử lý chuyển hướng tên miền sang miền rất đơn giản, nhưng bạn có thể phải sửa đổi nó để xử lý vị trí đường dẫn + tên miền cũ của trang web của bạn.

tôi đã mô tả các bước chi tiết ở đây:

http://joey.aghion.com/simple-301-redirects/

3

bố trí bằng tay phương pháp

Nếu bạn không cảm thấy như sử dụng https://github.com/jekyll/jekyll-redirect-from thật dễ dàng để thực hiện nó cho mình:

a.md:

--- 
layout: 'redirect' 
permalink: /a 
redir_to: 'http://example.com' 
sitemap: false 
--- 

_layouts/redirect.html dựa trên Redirect from an HTML page:

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <title>Redirecting...</title> 
    {% comment %} 
    Don't use 'redirect_to' to avoid conflict 
    with the page redirection plugin: if that is defined 
    it takes over. 
    {% endcomment %} 
    <link rel="canonical" href="{{ page.redir_to }}"/> 
    <meta http-equiv="refresh" content="0;url={{ page.redir_to }}" /> 
</head> 
<body> 
    <h1>Redirecting...</h1> 
    <a href="{{ page.redir_to }}">Click here if you are not redirected.<a> 
    <script>location='{{ page.redir_to }}'</script> 
</body> 
</html> 

Bây giờ là:

firefox localhost:4000/a 

sẽ chuyển hướng bạn đến example.com.

Giống ví dụ này, plugin redirect-from không tạo 301, chỉ meta + chuyển hướng JavaScript.

Chúng tôi có thể xác minh những gì đang xảy ra với:

curl localhost:4000/a 

Tested trên GitHub trang v64. trang

0

Github không hỗ trợ bất cứ điều gì như .htaccess hoặc nginx/conf

https://help.github.com/articles/redirects-on-github-pages/

do đó, cách đơn giản nhất là:

HTML chuyển hướng:

index.html

<html> 
    <head> 
    <meta http-equiv="refresh" content="0; url=http://www.mywebsite.com/" /> 
    </head> 

    <body> 
    <p><a href="http://www.mywebsite.com/">Redirect</a></p> 
    </body> 
</html> 
Các vấn đề liên quan