预渲染 io 给出 404 错误
Prerender io giving 404 error
我创建了一个 angulerjs 网络应用程序并为每个页面设置了 SEO 标签,例如 Angularjs website not indexing on google
我的 Web 应用程序托管在 IIS 服务器中。所以我将我的网络配置文件更改为如下配置。
<?xml version="1.0"?>
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-Prerender-Token" value="XXXXXXXXXXXXX" />
</customHeaders>
</httpProtocol>
<rewrite>
<rules>
<!--# Only proxy the request to Prerender if it's a request for HTML-->
<rule name="Prerender" stopProcessing="true">
<match url="^(?!.*?(\.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))(.*)" ignoreCase="false" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTP_USER_AGENT}" pattern="baiduspider|facebookexternalhit|twitterbot" />
<add input="{QUERY_STRING}" pattern="_escaped_fragment_" ignoreCase="false" />
</conditions>
<action type="Rewrite" url="http://service.prerender.io/http://yourwebsite.com/{R:2}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
我使用自己的预呈现令牌配置 Web 配置并登录 Prerender.io 并缓存我的网站页面。
当我加载 http://www.mywebsite.com/?_escaped_fragment_= 时,这个 link 现在给我“404 - 找不到文件或目录”错误。
我可以通过将操作类型 Rewrite 更改为 Redirect 来解决这个问题,如下所示。
<action type="Redirect" url="http://service.prerender.io/http://yourwebsite.com/{R:2}" />
已编辑
但是操作类型重定向会影响您网站的社交分享。因此,将其保留为 Rewrite 并将 Application Request Routing 安装到 IIS 服务器并启用代理。
这会对某人有所帮助 :)
我创建了一个 angulerjs 网络应用程序并为每个页面设置了 SEO 标签,例如 Angularjs website not indexing on google
我的 Web 应用程序托管在 IIS 服务器中。所以我将我的网络配置文件更改为如下配置。
<?xml version="1.0"?>
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-Prerender-Token" value="XXXXXXXXXXXXX" />
</customHeaders>
</httpProtocol>
<rewrite>
<rules>
<!--# Only proxy the request to Prerender if it's a request for HTML-->
<rule name="Prerender" stopProcessing="true">
<match url="^(?!.*?(\.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))(.*)" ignoreCase="false" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTP_USER_AGENT}" pattern="baiduspider|facebookexternalhit|twitterbot" />
<add input="{QUERY_STRING}" pattern="_escaped_fragment_" ignoreCase="false" />
</conditions>
<action type="Rewrite" url="http://service.prerender.io/http://yourwebsite.com/{R:2}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
我使用自己的预呈现令牌配置 Web 配置并登录 Prerender.io 并缓存我的网站页面。
当我加载 http://www.mywebsite.com/?_escaped_fragment_= 时,这个 link 现在给我“404 - 找不到文件或目录”错误。
我可以通过将操作类型 Rewrite 更改为 Redirect 来解决这个问题,如下所示。
<action type="Redirect" url="http://service.prerender.io/http://yourwebsite.com/{R:2}" />
已编辑
但是操作类型重定向会影响您网站的社交分享。因此,将其保留为 Rewrite 并将 Application Request Routing 安装到 IIS 服务器并启用代理。
这会对某人有所帮助 :)