如何加上「;“无索引”;AEM6.3中除prod之外的所有环境的元标记?

如何加上「;“无索引”;AEM6.3中除prod之外的所有环境的元标记?,aem,Aem,我需要在html页面的头部添加“无索引”元标记,用于除prod/live站点以外的所有环境(阶段、qa等),以避免搜索引擎搜索这些环境 我计划使用“运行模式””来检查环境,并为每个环境设置条件,不为产品运行模式添加“无索引” 有没有更好的方法来实现这一点 我看到的唯一选项是创建一个Use class/Sling模型,在slingsettingservice中连接,然后使用slingsettingservice#getRunModes()获取所有运行模式并检查所需的运行模式 下面是一个简单的吊索模

我需要在html页面的头部添加“无索引”元标记,用于除prod/live站点以外的所有环境(阶段、qa等),以避免搜索引擎搜索这些环境

我计划使用“运行模式””来检查环境,并为每个环境设置条件,不为产品运行模式添加“无索引”


有没有更好的方法来实现这一点

我看到的唯一选项是创建一个Use class/Sling模型,在
slingsettingservice
中连接,然后使用
slingsettingservice#getRunModes()
获取所有运行模式并检查所需的运行模式

下面是一个简单的吊索模型,用于检查prod运行模式。您可以根据特定的运行模式以相同的方式添加更多检查

@Model(adaptables = {SlingHttpServletRequest.class})
public class AbstractFacilityComponent
{

  @OSGiService SlingSettingsService slingSettings;


  boolean isProd;

  @PostConstruct
  protected void postConstruct()
  {
    Set<String> runmodes = slingSettings.getRunModes();
    isProd = runmodes.contains("prod");

    return;
  } 

  public boolean isProd(){ return isProd; }

}
@Model(adaptables={SlingHttpServletRequest.class})
公共类抽象设施组件
{
@OSGiService slingSettings SERVICE slingSettings;
boolean-isProd;
@施工后
受保护的void postConstruct()
{
Set runmodes=slingSettings.getRunModes();
isProd=runmodes.contains(“prod”);
返回;
} 
公共布尔值isProd(){return isProd;}
}

您可以更改应用程序部署的上下文,而不是更改生产环境和预生产环境之间的行为

我想到了以下选项:

  • 不允许公开访问预生产环境。(例如,不要为预生产环境提供公共IP地址,限制对同一网络/VPN的访问等)

  • 如果在AEM前面有Apache,我假设每个环境都有不同的Apache实例或不同的Apache vhost。您可以将预生产vhost配置为始终添加


  • 通常,您应该将非prod环境保持为私有。如果谷歌可以索引你的登台或开发实例,那么其他人也可以访问它。在我看来,这是一个很高的安全风险