问题描述
我在 aws amplify 上托管了一个使用 react.js 制作的网站。根据 AWS,我想在重写/重定向中添加此规则 </^[^.]+$|\.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|ttf|map|json)$)([^.]+$)/>
,以便我的应用程序中的路由显示出来。但是,我还创建了一个 sitemap.xml
,它可以在本地主机上运行,但不能在实时站点上运行。我知道这是因为规则,因为当我删除规则时,站点地图会加载到实时站点上,但随后我的路线不起作用。
是否需要为 sitemap.xml
添加另一条规则,或者编辑上面的规则?这是我在 AWS DOCS 上方找到规则的文档。先谢谢您的帮助! :)
解决方法
您现在拥有的规则是根据文件扩展名进行匹配 - css、gif 等。在不了解您正在使用的特定系统的更多信息的情况下,我不能肯定地说这会解决您的问题,但我认为如果您将 xml
添加到扩展列表中,它会解决这个问题。
来自您链接的文档:
使用正则表达式,以下示例将所有文件的 200 次重写设置为 index.html,但正则表达式中指定的特定文件扩展名除外。
现在,我猜 sitemap.xml 不起作用的原因是该规则将 sitemap.xml
的所有请求发送到 index.html
,以便您的 React 应用程序提供服务。如果您排除以 xml
结尾的网址,它将不再重定向。