我已经搜索了几天,但仍然有htaccess文件的问题,无法安装prerender.io令牌。在保存和测试各种htaccess格式后,我收到了以下消息:
我们尚未看到使用预呈现令牌的请求。 单击此处查看如何在中间件中安装令牌。
实际上所有页面都被缓存了!我的项目是Reactjs和Codeigntier,在Apache上共享主机。
我有一个像这样的htaccess文件:
# this section for forcing https and www
RewriteEngine On
RewriteCond %{HTTPS} !^on$
RewriteRule (.*) https://www.mokaab.com/$1 [R,L]
RewriteCond %{HTTP_HOST} !^www.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
# this is the code which provided on Prerender website
<IfModule mod_headers.c>
RequestHeader set X-Prerender-Token "TOKEN"
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
<IfModule mod_proxy_http.c>
RewriteCond %{HTTP_USER_AGENT} googlebot|bingbot|yandex|baiduspider|facebookexternalhit|twitterbot|rogerbot|linkedinbot|embedly|quora link preview|showyoubot|outbrain|pinterest|slackbot|vkShare|W3C_Validator [NC,OR]
RewriteCond %{QUERY_STRING} _escaped_fragment_
# Only proxy the request to Prerender if it's a request for HTML
RewriteRule ^(?!.*?(.js|.css|.xml|.less|.png|.jpg|.jpeg|.gif|.pdf|.doc|.txt|.ico|.rss|.zip|.mp3|.rar|.exe|.wmv|.doc|.avi|.ppt|.mpg|.mpeg|.tif|.wav|.mov|.psd|.ai|.xls|.mp4|.m4a|.swf|.dat|.dmg|.iso|.flv|.m4v|.torrent|.ttf|.woff))(.*) http://service.prerender.io/https://www.mokaab.com/$2 [P,L]
</IfModule>
</IfModule>
# this is for avoiding 404 page when refreshing page on React apps
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]
此外,我已经改变了他们的位置,但仍然有问题! 然后我在头部部分放置以下元标记:
<meta name="fragment" content="!">
我认为问题在于htaccess。
.htaccess
文件是正确的!问题出在主机中的配置! 必须在每种类型的主机上启用这些配置:
mod_headers.c
mod_rewrite.c
mod_proxy_http.c
显然,前两个选项在普通主机上启用,但最后一个选项需要SSH
不可用!