#ajax #hash #web-crawler #headless-browser
#ajax #хэш #веб-сканер #безголовый браузер
Вопрос:
что мне нужно сделать, чтобы добавить ?_escaped_fragment_=
поддержку на мой сервер? Я хочу, чтобы Google мог сканировать мой ajax-сайт. Мои хэши уже находятся в #!
форме
Но я понятия не имею, как сообщить моему серверу, что когда я вхожу mywebsite.com/?_escaped_fragment_=section
в свой браузер, чтобы URL mywebsite.com/section
и он был равен mywebsite.com/#!
Спасибо
Ответ №1:
Простой ответ — мой метод (который скоро будет использоваться для сайта с примерно 50 000 URL-адресов, сгенерированных AJAX) заключается в том, чтобы иметь node.js сервер, использующий среду без головы (попробуйте zombie, phantomjs или любую другую) для загрузки сайта, убедившись, что он способен выполнять javascript и читать DOM — затем во время выполнения, если фрагмент запрашивает Google, отправьте запрос на node.js сервер, который загружает сайт, выполняет javascript, ожидает ответа и возвращает HTML, который выводится в браузер.
Если это звучит как большая работа — я примерно на 90% закончил код, который делает все это за вас, где вы просто добавляете одну строку (PHP) кода в верхней части вашего сайта / приложения, а остальное оно делает за вас, используя удаленный node.js сервер.
Код будет с открытым исходным кодом, поэтому, если вы хотите настроить его самостоятельно на узловом сервере, вы можете — или, если это PITA, настроить его самостоятельно, у меня, вероятно, будет запущен действующий сервер, на который ваше приложение / веб-сайт будет отправлять ?_escaped_fragment_
запросы и получать обратно html-снимок. Он также реализует кэширование, так что они запрашиваются только раз в X дней.
Следите за этим пространством — осталось доработать несколько изломов, и оно появится на моем сайте (josscrowcroft.com ) и я тоже помещу его в репозиторий github.
Комментарии:
1. хорошо, итак, если я понимаю, первое, что мне нужно, это node.js сервер. большое спасибо. и тогда я подожду, пока вы опубликуете свой код на github…
2. Да, начиная со следующей недели я буду тестировать его на сайте клиента на виртуальном сервере rackspace, поэтому, как только он будет протестирован в естественных условиях и я проверю, какую нагрузку он создает на сервере, я опубликую репозиторий — определенно в течение нескольких недель.
3. Я просто подумал — что, если я использую .htaccess для изменения URL. Будет ли это работать?