アプリ版:「スタンプのみでお礼する」機能のリリースについて

URLを変更しました。
旧URLのサブページから、新URLのサブページに自動ジャンプさせたく、
旧URLのサブページに下記のhtmlを記入しました。

<meta http-equiv="Refresh" content="0;URL=http://www.example-new.com/sub/">

旧サブページURL(例)
http://www.example-old.com/sub/
新サブページURL(例)
http://www.example-new.com/sub/

しかし、とんだ先ではサーバー内での「403error(URLが見つからない)」のエラーになってしまいます。

サブページではなく
<meta http-equiv="Refresh" content="0;URL=http://www.example-new.com/">
のように、トップページへのジャンプに変更したらうまくとびました。が、出来ればサブページにとばしたいのです。

ちなみに旧URLは生きています。
サブページへのジャンプは出来ないのでしょうか? 私のやり方が間違っているのでしょうか?

A 回答 (3件)

HTTPサーバーの動作を理解されてますか?


 至極単純な動作ですので

あるURLが要求されたとします。以下http:の部分は省きます。この掲示板のシステムがURLと間違うので・・・いずれもそれがあると考えてください。

//www.example-new.com/sub/abc/efg?hijk
と要求を受けた場合、?以下は環境変数{QUERY_STRINGS}に格納されます。ついで
1) efgというファイル、もしくはディレクトリがあるか探します。
 1-a) それがディレクトリだとそのディレクトリを許可があれば開きます。
  1-a-1)サーバーのDirectryIndexが指定されていればその順番で探します。
    index.html index.htm INDEX.HTM index.cgi
    見つかればそれを返します。そのときにファイルに対する動作指定に従います。
     Windowsと異なり拡張子で決めていない。拡張子がhtmlだろうが実行ファイルと指定してあれば実行させる。htmlやgifという拡張子でもCGIにできる。

  1-a-2)DirectryIndexがない場合は、許可されていればディレクトリ内のファイル一覧を返します。
  1-a-3)許可されていなければ404を返します。
 1-b) それがファイルだと指定された方法で実行ないし提供します。
 1-c) ファイルもフォルダーもなければ、/ひとつ分切り捨てて値を環境変数{PATH_INFO}に格納してその上の文字列に対して、上の動作を繰り返します。
 この例だと/efgが格納されて /sub/abcに対して同様の処理を行います。

 ですので、/subと指定しても、DirectryIndexが指定されていなくて、ディレクトリ一覧の表示も許されてなければ404になります。

 /sub/test.html
のように、ファイル名まで指定するか、HTTPD_CONFを書き換えるか、許可されていれば.httaccessファイルで指定しましょう。
    • good
    • 0

まず、引越に meta http-equiv='Refresh' を使うこと自体ナンセンス。


.htaccessで、301 Redirect させましよう。

301 リダイレクトで検索すれば、いくつかヒットします。ファイト!

参考URL:http://mikeneko.creator.club.ne.jp/~lab/web/htac …

この回答への補足

ご回答ありがとうございます。
検索して、トライしてみます。

補足日時:2011/04/29 10:33
    • good
    • 0

403エラーは


接続拒否を意味します。
砕いて言うと
あなたにはこのページへのアクセス権限がありません
という意味です。

・そもそもブラウザでURLに直接http://www.example-new.com/sub/を指定して開けるのかどうか

これがNoならできません。

この回答への補足

すみません。404エラーでした。

>・そもそもブラウザでURLに直接http://www.example-new.com/sub/を指定して開けるのかどうか

これまで最後のスラッシュを省いてつないでいました。が、質問に記載したhtmlのように最後のスラッシュを付けると開けませんでした。
また、http://www.example-new.com/sub.html でも開けますが、スラッシュを加えると開けません。

そこで、
<meta http-equiv="Refresh" content="0;URL=http://www.example-new.com/sub">
<meta http-equiv="Refresh" content="0;URL=http://www.example-new.com/sub.html">
と記載してみましたが、パチパチとつないだり切れたりを繰り返しているような症状でつながりません。
ブラウザは、IE8です。

http://www.example-new.com/sub/ はもちろんダミーのURLです)

補足日時:2011/04/28 16:17
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!