Я чувствую, что я попытался выполнить каждый отдельный вариант, и ничего не получилось. Прежде всего позвольте мне перечислить варианты я пробовал:Угловое приложение, проиндексированное Google
Использование PreRender с Apache:
Я попытался это, используя следующие шаги:
В Угловое:
$locationProvider.html5Mode(true);
В HTML , добавить этот мета-заголовок:
<head>
<meta name="fragment" content="!">
</head>
Настройка 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
Это не работает вообще: Google не смог прочесть мои подстраниц.
Использование Node/Phantomjs для визуализации страниц
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);
Здесь я создал этот сайт затем добавил прокси в моей конфигурации Apache так, что все запросы указал на моем домене порт 3500
.
Это не сработало, поскольку он не смог отобразить индекс, и когда я, наконец, получил его для отправки html-страницы, JavaScript не будет отображаться.
После пользовательских снимков руководство
Тогда я после этого руководства:
http://www.yearofmoo.com/2012/11/angularjs-and-seo.html
Однако это требовало меня, чтобы сделать собственные снимки всего, что не то, что я ищу для и раздражает поддерживать. Кроме того, make-snapshot не работал на моем сервере.
так что происходит, когда вы вставляете '? _escaped_fragment_ =' в url? – charlietfl
@charlietfl прямо сейчас, если я делаю http://www.learningbank.dk/?_escaped_fragment_= он перенаправляет на мой индекс –
попробуйте удалить бота условия для его проверки – charlietfl