0

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

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

    *Link to page A*
    *Link to page B*

这应该是 HTML 格式(遵守一般的网站风格)。

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

  1. 提供什么 HTTP 状态码?有301 Moved Permanently,但我提供的选择不止一种。
  2. 是否可以在没有 hacky LocationMatch 或类似的情况下根据我的需要配置 apache?理想情况下,我想使用正常的文件服务语义,但 HTTP 状态代码不应为 200。
4

1 回答 1

0

感谢您的澄清评论。

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

  1. 是的,301 是正确的回应。这将表示旧页面已永久移动,并将用户重定向到带有链接的插页式页面。

  2. 您可以通过在旧单页所在的目录中的.htaccess文件中添加一行来完成此操作(假设您也将新页面保留在那里)。或者,您可以在主httpd.conf 文件中添加一行。这些行看起来像这样:

.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
于 2012-10-02T21:08:35.057 回答