0

情報を 2 つの別々のページに分割する必要がある Web ページがあります。2 つの異なるページがあることを訪問者に知らせて、古い単一ページ ページの訪問者に次のようなカスタム エラー ページを表示するようにします。

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

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

これは HTML である必要があります (一般的な Web サイトのスタイルに従うため)。

不明な点は、セマンティクスと apache の構成です

  1. 提供する HTTP ステータス コードは? はありますが301 Moved Permanently、提供できる選択肢が複数あります。
  2. ハックな LocationMatch などを使用せずに、必要に応じて apache を構成することは可能ですか? 理想的には、HTTP ステータス コードが 200 であってはならないことを除いて、通常のファイル サービング セマンティクスを使用したいと考えています。
4

1 に答える 1

0

明確なコメントをありがとう。

あなたの2つの質問に答えて、私は言います:

  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 に答える