Apache 如何配置htaccess以提供预渲染页面而不是动态页面?

Apache 如何配置htaccess以提供预渲染页面而不是动态页面?,apache,.htaccess,seo,prerender,Apache,.htaccess,Seo,Prerender,我尝试使用.htaccess将apache配置为仅为搜索引擎爬虫提供预渲染页面。我以为我成功了,直到谷歌把我的页面注册为 所以google已经将我的预呈现页面注册为mydomain.fr/prerender,但我希望它注册为mydomain.fr/。这是一个问题,因为当用户从搜索引擎访问它时,他们将转到预呈现的页面,该页面不是javascript函数 我应该明确指出,当我在本地主机上测试该配置时,apache在mydomain.fr/上很好地服务于我的预呈现页面 这是我的.htaccess: &

我尝试使用.htaccess将apache配置为仅为搜索引擎爬虫提供预渲染页面。我以为我成功了,直到谷歌把我的页面注册为

所以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]

标题集缓存控制“无缓存”
重新启动发动机
#为爬虫程序提供预渲染主页
RewriteCond%{HTTP|u USER|u AGENT}(aolbuild |百度| bingbot | bingpreview | adidxbot | msnbot | duckduckgo | mediapartners谷歌| adsbot谷歌| adsbot谷歌| adsbot谷歌移动应用|谷歌| mediapartners谷歌| teoma | slurp | yandex)[NC]
重写规则^$/prerender/index.html[L]
#为爬虫提供预渲染页面
RewriteCond%{HTTP|u USER|u AGENT}(aolbuild |百度| bingbot | bingpreview | adidxbot | msnbot | duckduckgo | mediapartners谷歌| adsbot谷歌| adsbot谷歌| adsbot谷歌移动应用|谷歌| mediapartners谷歌| teoma | slurp | yandex)[NC]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^(.*)$/prerender/$1/index.html[L]
#重定向到https
RewriteCond%{SERVER\u PORT}^80$[或]
RewriteCond%{HTTPS}=off
重写规则^(.*)$https://%{HTTP_HOST}/$1[R=301,L]
#完全控制前端路由
重写cond%{REQUEST_URI}^/$
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则[L]

/prerender在我的应用程序中甚至不是一个路由,它不是由我的前端路由器(重定向到/404)处理的,它也不是由我的站点地图提供的。而且,如果我理解清楚的话,这个.htaccess不会重定向爬虫程序的请求,它只提供一个替代资源。我认为谷歌没有理由注册/prerender路由。

这里我们可以说的很少。您只需声明无法访问“预渲染”路由。我们只能相信你的话。虽然很明显这条路线是可以访问的,因为机器人对它进行了爬网。不,我不想说它不能访问。我的意思是,这条路线没有在我的网站上的任何地方指定,没有在网站地图上或作为链接指定。但如果您知道有prerender/index.html资源,则可以访问它。我正在使用prerender/index.html资源的唯一地方是这个htaccess,所以这可能是由于该配置