如何配置htaccess来提供首选页面而不是动态页面?

时间:2019-11-09 00:36:50

标签: apache .htaccess seo prerender

我尝试使用.htaccess配置apache,使其仅为搜索引擎搜寻器提供预渲染的页面。我以为我成功了,直到Google将我的页面注册为http://mydomain.fr/prerender

因此google已将我的预渲染页面很好地注册为mydomain.fr/prerender,但我希望将其注册为mydomain.fr/。这是一个问题,因为当用户从搜索引擎访问它时,他们将转到非javascript功能的预渲染页面。

我应该指出,当我在本地主机上测试该配置时,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路线。

0 个答案:

没有答案