2015-09-26 4 views
2

Я хочу, чтобы удалить # из моего angularjs приложения, я занимаюсь разработкой веб-сайта, я думаю, что это может помочь сделать SEO дружественный сайт, Может быть я ошибаюсь, пожалуйста, помогите СпасибоКак я могу сделать сайт AngularJS сканированным в Google?

+0

http://prerender.io или roll server side render your own. – YOU

+0

любое бесплатное решение? – Punit

+0

с открытым исходным кодом - https://github.com/prerender/prerender - вы можете запускать свой собственный сервер – YOU

ответ

2

Я согласен с Джо Ллойдом на пути, чтобы удалить # с вашего URL, но это не поможет вам сделать свой сайт angularjs сканироваться. Проверьте следующие шаги:

  1. Настройте html5mode

    конфигурации (функция ($ routeProvider, $ locationProvider) {$ locationProvider.html5Mode (истина);

  2. Добавить <meta name="fragment" content="!"> в свой страниц, поэтому бот Google знает, чтобы добавить? _escaped_fragment_ = в конце вашего запроса.

  3. Обращайтесь к ?_escaped_fragment_= по адресу на стороне сервера и обслуживать статический снимок запрашиваемой html-страницы (phantomjs может выполнить задание), поэтому бот будет индексировать визуализированную версию html-страницы.

  4. Заполняем свой sitemap.xml и отправить его в Google с помощью www.google.com/webmasters/

Удачи!

+0

Я использую XAMPP в качестве локального сервера, мой путь к сайту - это http: // localhost/mysite после первого шага, когда я открываю http: // localhost/mysite, он перенаправляет меня на http: // localhost Я ничего не делал на стороне сервера, я использую PHP. Есть ли какой-то материал .htaccess, который я должен делать? Спасибо – Punit

+0

Попытайтесь добавить на свою индексную страницу –

+0

спасибо, как я могу справиться? _escaped_fragment_ = с htaccess – Punit

1

Config

Чтобы удалить # в вашем URL-адресе вам нужно добавить это в свой основной модуль. Вы помещаете приложение в режим html5.

//This config is used to remove the # in the html 
app.config(["$locationProvider", function($locationProvider) { 
    $locationProvider.html5Mode({ 
     enabled: true, 
     requireBase: false 
    }); 
}]); 

стороны сервера (NodeJS)

Это будет иметь побочный эффект сервера, когда вы нажмете обновления вам нужно добавить дополнительный маршрут, который способен найти новый URL. это будет работать в вашем экспресс-файле js app.js. Если общая папка содержит ваше угловое приложение и у вас есть файл index.html там

// ### CATCH REFRESH TO INDEX ### 
app.all('/*', function(req, res, next) { 
    // Just send the index.html for other files to support HTML5Mode 
    res.sendFile('public/index.html', { root: __dirname }); 
}); 
+0

@ christophe.chapron Я не уверен, что честно, мой ответ просто удаляет хэш в URL-адресе и позволяет Сервер nodejs знает, как обрабатывать новые пути. –

+0

да я согласен, но это не поможет вообще для SEO :) @Punit: прочитайте http://www.yearofmoo.com/2012/11/angularjs-and-seo.html + документацию Google относительно веб-сайта ajax –

+0

Я использую PHP на стороне сервера, вы можете помочь с этим? ИЛИ есть ли какая-либо возможность в файле HTACCESS – Punit