Я пытаюсь настроить apache с .htaccess, чтобы он обслуживал предварительно обработанные страницы только для поисковых роботов. Я думал, что у меня получится, пока Google не зарегистрирует мою страницу как http://mydomain.fr/prerender.
Так что Google хорошо зарегистрировал мою предварительно обработанную страницу как mydomain.fr/prerender, но я хочу, чтобы она была зарегистрирована как mydomain.fr/. Это проблема, потому что, когда пользователи получают доступ к ней из поисковой системы, они переходят на предварительно обработанную страницу, которая не является javascript-functionnal.
Я должен уточнить, что когда я тестирую эту конфигурацию на localhost, apache хорошо справлялся с моей предварительно обработаннойстраница на mydomain.fr/.
Вот мой .htaccess:
<IfModule mod_headers.c>
Header set Cache-Control "no-cache"
</IfModule>
RewriteEngine On
#Serving prerendered main page for crawlers
RewriteCond %{HTTP_USER_AGENT} (aolbuild|baidu|bingbot|bingpreview|adidxbot|msnbot|duckduckgo|mediapartners-google|adsbot-google|adsBot-google-mobile-apps|googlebot|mediapartners-google|teoma|slurp|yandex) [NC]
RewriteRule ^$ /prerender/index.html [L]
#Serving prerendered pages for crawlers
RewriteCond %{HTTP_USER_AGENT} (aolbuild|baidu|bingbot|bingpreview|adidxbot|msnbot|duckduckgo|mediapartners-google|adsbot-google|adsBot-google-mobile-apps|googlebot|mediapartners-google|teoma|slurp|yandex) [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /prerender/$1/index.html [L]
#Redirecting to https
RewriteCond %{SERVER_PORT} ^80$ [OR]
RewriteCond %{HTTPS} =off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
#Giving full control to front-end routing
RewriteCond %{REQUEST_URI} !^/$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . / [L]
/ prerender - это даже не маршрут в моем приложении, он не обрабатывается моим интерфейсным маршрутизатором (которыйперенаправить на / 404), и это не предусмотрено моей картой сайта. И, если я хорошо понимаю, этот .htaccess не перенаправляет запрос на сканеры, он служит только альтернативному ресурсу. Я не вижу причин для Google регистрировать маршрут / prerender.