2015-09-23 73 views
10

Tôi cảm thấy như tôi đã thử mọi tùy chọn duy nhất trên mạng và không có gì thành công. Trước tiên cho tôi danh sách các tùy chọn Tôi đã thử:Ứng dụng góc được lập chỉ mục bởi Google

Sử dụng PreRender với Apache:

tôi đã cố gắng này sử dụng các bước sau:

Trong góc:

$locationProvider.html5Mode(true); 

Trong HTML , thêm tiêu đề meta này:

<head> 
    <meta name="fragment" content="!"> 
</head> 

Configure Apache:

RewriteEngine On 
# If requested resource exists as a file or directory 
    # (REQUEST_FILENAME is only relative in virtualhost context, so not usable) 
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR] 
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d 
    # Go to it as is 
    RewriteRule^- [L] 

    # If non existent 
    # If path ends with/and is not just a single /, redirect to without the trailing/
     RewriteCond %{REQUEST_URI} ^.*/$ 
     RewriteCond %{REQUEST_URI} !^/$ 
     RewriteRule ^(.*)/$ $1 [R,QSA,L]  

    # Handle Prerender.io 
    RequestHeader set X-Prerender-Token "YOUR_TOKEN" 

    RewriteCond %{HTTP_USER_AGENT} baiduspider|facebookexternalhit|twitterbot|rogerbot|linkedinbot|embedly|quora\ link\ preview|showyoubot|outbrain|pinterest [NC,OR] 
    RewriteCond %{QUERY_STRING} _escaped_fragment_ 

    # Proxy the request 
    RewriteRule ^(.*)$ http://service.prerender.io/http://%{HTTP_HOST}$1 [P,L] 

    # If non existent 
    # Accept everything on index.html 
    RewriteRule^/index.html 

này đã không làm việc ở tất cả: Google đã không thể đọc trang con của tôi.

Sử dụng Node/Phantomjs để render các trang

var express = require('express'); 
var app = module.exports = express(); 
var phantom = require('node-phantom'); 
app.use('/', function (req, res) { 
    if (typeof(req.query._escaped_fragment_) !== "undefined") { 
     phantom.create(function (err, ph) { 
      return ph.createPage(function (err, page) { 
       return page.open("https://system.dk/#!" + req.query._esca$ 
        return page.evaluate((function() { 
         return document.getElementsByTagName('html')[0].innerHT$ 
        }), function (err, result) { 
         res.send(result); 
         return ph.exit(); 
        }); 
       }); 
      }); 
     }); 
    } else 
     res.render('index'); 
}); 

app.listen(3500); 
console.log('Magic happens on port ' + 3500); 

Ở đây tôi tạo ra trang web này sau đó thêm vào một proxy trong cấu hình Apache của tôi để tất cả yêu cầu chỉ trên cổng tên miền của tôi 3500.

Điều này không hoạt động vì nó không thể hiển thị chỉ mục và khi tôi cuối cùng nhận được chỉ mục để gửi trang html JavaScript sẽ không hiển thị.

Tiếp theo bản chụp tùy chỉnh hướng dẫn

Sau đó, tôi theo hướng dẫn này:

http://www.yearofmoo.com/2012/11/angularjs-and-seo.html

Tuy nhiên điều này đòi hỏi tôi phải làm cho bức ảnh chụp tùy chỉnh của tất cả mọi thứ mà không phải là điều tôi đang tìm kiếm và gây phiền nhiễu để duy trì. Cộng với ảnh chụp nhanh không hoạt động trên máy chủ của tôi.

+0

vậy điều gì xảy ra khi bạn chèn '? _escaped_fragment_ =' vào url? – charlietfl

+0

@charlietfl ngay bây giờ nếu tôi làm http://www.learningbank.dk/?_escaped_fragment_= nó chuyển hướng đến chỉ mục của tôi –

+0

hãy thử loại bỏ các điều kiện bot để kiểm tra nó – charlietfl

Trả lời

2

Về lý thuyết, bạn không cần phải hiển thị trước trang của mình cho trình thu thập thông tin của Google. Họ phân tích javascript ngày nay. http://googlewebmastercentral.blogspot.ca/2014/05/understanding-web-pages-better.html

Google phân tích trang web góc nhìn của tôiJS tốt. https://www.google.nl/search?q=site%3Atest.coachgezocht.nu

Sử dụng $ locationProvider.html5Mode (true); và:

RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_URI} !index 
    RewriteRule (.*) index.html [L] 
Các vấn đề liên quan