Apache HTTP:将网页信息分成两页的语义

Apache HTTP:将网页信息分成两页的语义,apache,http,Apache,Http,我有一个网页,其信息必须分为两个单独的页面。我想让访问者知道,现在有两个不同的页面,从而为旧单页页面的访问者提供一个自定义错误页面,如 (Depending on who you are, ) the page you want is either of these: *Link to page A* *Link to page B* 这应该是HTML格式的(遵循一般网站的风格) 我不清楚的是语义和apache配置 提供什么HTTP状态代码?有永久移动的301,但我有不止一种

我有一个网页,其信息必须分为两个单独的页面。我想让访问者知道,现在有两个不同的页面,从而为旧单页页面的访问者提供一个自定义错误页面,如

(Depending on who you are, ) the page you want is either of these:

    *Link to page A*
    *Link to page B*
这应该是HTML格式的(遵循一般网站的风格)

我不清楚的是语义和apache配置

  • 提供什么HTTP状态代码?有永久移动的
    301
    ,但我有不止一种选择
  • 是否可以根据我的需要配置apache,而无需hacky LocationMatch或类似工具?理想情况下,我希望使用正常的文件服务语义,但HTTP状态代码不应为200

  • 谢谢你的澄清评论

    在回答你的两个问题时,我想说:

  • 是的,301是正确的回答。这将表明旧页面被永久移动,并将用户重定向到带有链接的中间页面

  • 您可以通过在旧页面所在的目录中的文件中添加一行来实现这一点(假设您也保留了新页面)。或者,您可以在主菜单中添加一行。线条如下所示:

  • # Enable URL matching and match the old page with "Gone" (G), "Last rule" (L)
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^oldPage.html$ - [G,L]
    </IfModule>
    
    # Special 410 page with links to Page A and Page B
    ErrorDocument 410 /path/to/custom/410-page.html
    
    .htaccess

    Redirect 301 ./old_page.html ./new_interstitial_page.html
    
    httpd.conf

    Redirect 301 /path/to/old_page.html /path/to/new_interstitial_page.html
    
    编辑:没有任何上下文,这听起来确实像是重定向场景。在HTTP术语中,以前在旧位置可用的“资源”现在在新位置可用(尽管是部分),因此您可以将客户端“重定向”到新位置或中间页

    但如果你觉得这不合适,你可以试试“410 Gone”。这意味着资源根本不存在,而是将客户端指向错误页面。然后,您可以自定义错误页面,以包含指向页面A和页面B的链接。您的.htaccess如下所示:

    # Enable URL matching and match the old page with "Gone" (G), "Last rule" (L)
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^oldPage.html$ - [G,L]
    </IfModule>
    
    # Special 410 page with links to Page A and Page B
    ErrorDocument 410 /path/to/custom/410-page.html
    
    #启用URL匹配,并将旧页面与“Gone”(G)、“Last rule”(L)匹配
    重新启动发动机
    重写规则^oldPage.html$-[G,L]
    #特殊410页,带有指向A页和B页的链接
    ErrorDocument 410/path/to/custom/410-page.html
    
    嘿,乔,我有点不清楚你想干什么。您希望用户被重定向到一个包含指向页面A和页面B的链接的中间页面,还是立即定向到两个新拆分页面中的一个。如果是后者,是什么决定了它们指向哪个页面?谢谢。@pieman72:前者:我想为他们提供上面描述的页面(编辑:更清楚地说明这些是链接)。理想情况下,这甚至不应该是重定向,而只是旧页面(内容被替换),因此不需要配置重定向。我想我的问题仍然太不清楚。我希望“中间”页面是一个错误页面(应该提供一个错误代码以使其语义正确)。我已经编辑了我的答案,包括如何抛出自定义错误,但我仍然认为这听起来像是一个重定向场景。不过,请恕我直言,因为我不是你的情况:)