3

Web 上のいくつかのファイル名を変更したので、"301 Permanently Moved" を古いファイルから新しいファイルにリダイレクトしたいと考えています。

問題は、私の Web が完全に静的な html ページで作成されており、301 のリダイレクト チュートリアルのすべてが、PHP、ASP、htaccess などでそれを行う方法を説明していることです。リダイレクトを古い html ファイルに直接書きたいのですが、これは可能ですか? または、Web プロバイダーに連絡して、サーバーでリダイレクトを解決する必要がありますか?

サーバーについて私が知っている唯一のことは、それが Windows で実行されていることであり、サーバーに関する知識はありません。

編集: 私の Web ホスティングは Microsoft IIS 7.0 を使用しているため、ここでは .htaccess を使用できないと思いますか?

編集 #2: たった今、サーバー管理者から、静的 HTML ページのみを使用している場合でも、web.config ファイルを使用して個々の html ファイルをリダイレクトできると書かれていました。これはすごく素敵。

4

4 に答える 4

5

HTML で HTTP ステータス コードを変更することはできません。

ただし、Apache ウェブサーバーを使用している場合は、mod_rewriteまたはmod_aliasを使用して、そのようなリクエストを新しいアドレスにリダイレクトできます。

# mod_rewrite
RewriteEngine on
RewriteRule ^old\.html$ /new.html [L,R=301]

# mod_alias
RedirectMatch 301 ^/old\.html$ /new.html

編集   IIS 7 を使用していることを明らかにしたので<httpRedirect>、HTTP リダイレクトの要素を見てください。

于 2009-06-01T10:59:01.440 に答える
3

いいえ、できません。HTML はサーバーによって処理されないため、HTTP ヘッダーを設定できません。

代わりに Apache の設定を確認する必要があります (.htaccess など)。

単純化すると、次のことができます。

  Redirect 301 old.html http://example.com/new/
  Redirect 301 other-old.html http://example.com/newer/
于 2009-06-01T11:01:02.480 に答える
2

JavaScript や meta-refresh (Gumbo の提案による) を使用して、ユーザーを古いページから新しいページにリダイレクトできると思います。何かのようなもの:

<html>
<head>
  <meta http-equiv="refresh" content="0;url=http://YourServer/NewFile.html" />

  <script type="text/javascript">
    location.replace('http://YourServer/NewFile.html');
  </script> 
</head>
<body>
  This page has moved. <a href="http://YourServer/NewFile.html">Click here for the new location</a>
</body>
</html>
于 2009-06-01T11:09:44.057 に答える
-1

IIS で個々のページをリダイレクトするのは簡単で、web.config ファイルで行います。

  <location path="products.htm">
    <system.webServer>
      <httpRedirect enabled="true" destination="http://yourserver/products" httpResponseStatus="Permanent" />
    </system.webServer>
  </location>
于 2020-01-26T02:54:18.620 に答える