预渲染io给出404错误

Prerender io giving 404 error

本文关键字:错误 给出 io      更新时间:2023-09-26

我创建了一个Angularjs web应用程序,并为每个页面设置SEO标签,比如Angularjs网站没有在谷歌上索引

我的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> 

我用自己的prerender令牌配置了网络配置,并登录到prerender.io并缓存了我的网站页面。

当我加载时http://www.mywebsite.com/?_escaped_fragment_=这个链接现在给我"404-找不到文件或目录"错误。

我可以通过将Action类型Rewrite更改为Redirect来解决这个问题,如下所示。

<action type="Redirect" url="http://service.prerender.io/http://yourwebsite.com/{R:2}" />

已编辑

但动作类型重定向将影响您网站的社交共享。因此,将其保留为"重写",并将"应用程序请求路由"安装到IIS服务器并启用代理。

这将对某人有所帮助:)