Как настроить htaccess для обслуживания предопределенной страницы вместо динамической страницы? - PullRequest
0 голосов
/ 09 ноября 2019

Я пытаюсь настроить 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.

...