2015-09-21 4 views
2

Я последовал следующий путеводитель:Prerender.io подстраниц перенаправлять индекс

В угловой:

$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.

ОДНАКО всякий раз, когда я пытаюсь идти к моему дочернем он говорит мне, что он был перенаправлен на index.html

Может кто-нибудь пожалуйста, скажите мне, что я делаю не так? я попытался это в течение нескольких недель и hasnt смог придумать решение :(

От:

enter image description here

+0

Предполагая, что '/ products' не существует (а не как настоящий файл), ваш htaccess перезаписывает его в'/index.html'. Это нормальное поведение. Что бы вы имели вместо этого? –

ответ

1

Вы проверяете свой сайт с Googlebot, но агент пользователя не в списке возможных агентов пользователей, что ваши правила перезаписи ищут ,

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

В приведенном выше списке перечислены все боты, которые будут проксированы на prerender.io. Более конкретно, в нем перечислены только части пользовательского агента, которых достаточно для их обнаружения. Если вы добавите «googlebot», тогда он будет соответствовать этому. Или, возможно, просто «бот» для целей тестирования.

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

Дайте ему попробовать. Кроме того, посмотрите, есть ли в вашем браузере плагин «User Agent Switcher», который позволит вам протестировать быстрее, чем через инструменты Google.

+1

Вы не хотите определять робота Googlebot своим пользовательским агентом, потому что это может заставить вас наказывать за клоакинг. По этой причине поддерживается протокол _escaped_fragment_. Я бы не рекомендовал обнаруживать робота Googlebot своим пользовательским агентом. –

0

Что ваш HTAccess выглядеть, прежде чем я думаю, что это будет причиной почему ваши поддомены будут все показывать index.html:

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

мой htaccess был пуст –

+0

btw, если вышеуказанный код должен быть в моем htaccess или моей конфигурации apache. –

+0

Можете ли вы перенести раздел prerender вашего конфига в верхнюю часть вашего htaccess, чтобы он выполнялся первым и посмотрел, что это что-то изменит? Не стесняйтесь присылать мне свой URL, чтобы я мог помочь проверить. [email protected] –