2009-06-01 17 views
3

私は自分のウェブ上でいくつかのファイル名を変更しましたが、今は "301 Permanently Moved"を古いファイルから新しいファイルにリダイレクトしたいと思っています。301 HTMLファイルに直接リダイレクト

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

私がサーバについて知っている唯一の事は、それがWindows上で動作し、サーバの知識がないことです。

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

EDIT#2:私のサーバー管理者は静的なHTMLページだけを使用しても、web.configファイルを使用して個別のHTMLファイルをリダイレクトできます。これはすごく素敵。

+0

サーバーがそれ自身を識別する方法については、HTTPヘッダーフィールド「サーバー」を確認してください。 http://web-sniffer.net/を使用してHTTPヘッダーフィールドを表示できます。 – Gumbo

答えて

4

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> element for HTTP redirectsを見てください。

+0

私のWebホスティングはMicrosoft-IIS/7.0を使用していますが、同様の方法やリダイレクトはありますか? – user20353

+0

これを見てください:http://www.iis.net/ConfigReference/system.webServer/httpRedirect – Gumbo

3

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

代わりにApacheの設定を参照してください(例:.htaccess)。あなたが行うことができ、そのsimplistで

Redirect 301 old.html http://example.com/new/ 
    Redirect 301 other-old.html http://example.com/newer/ 
+1

HTTPヘッダフィールドを設定することはできません。しかし、 'meta'要素の' http-equiv'はHTTPに相当すると考えられます。したがって、これらの情報はHTTPヘッダーフィールドとして扱われるはずです。 – Gumbo

+2

いいえ、http-equivはクライアントではなくHTTPサーバーによって読み込まれ、解析されるはずです。 HTTPサーバはそれをしません、そして、クライアントはこれをかなりサポートしていません。ハーフデッド、ハーフブレイクの機能で、HTML5でほぼ完全に削除されています。 – Kornel

+0

@proneL:ああ、そうだよ。 – Gumbo

2

私は(ガンボにより示唆されるように)あなたが新しいものに古いページからユーザーをリダイレクトするためにJavaScriptおよび/またはメタリフレッシュを使用することができると思います。 何かのように:

<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> 
+1

JSリダイレクトを持つ唯一の理由は、メタリフレッシュを無効にする人のためであると思われます。私はこの3レベルのリダイレクトを、私が維持しているサイトで使っていましたが、その後、JSリダイレクトを削除しました。それを無効にするのに十分なメタリフレッシュを嫌う人は、JSが同じことをするのを嫌うでしょう。 – Stewart