- ベストアンサー
新しいURLのサブページへジャンプさせたい
- 旧URLのサブページから、新URLのサブページに自動ジャンプさせたく、エラーが発生しています。
- サーバー内での「403エラー(URLが見つからない)」が発生しています。
- トップページへのジャンプは成功していますが、サブページへのジャンプができません。
- みんなの回答 (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ファイルで指定しましょう。
その他の回答 (2)
- waterclock
- ベストアンサー率33% (1/3)
まず、引越に meta http-equiv='Refresh' を使うこと自体ナンセンス。 .htaccessで、301 Redirect させましよう。 301 リダイレクトで検索すれば、いくつかヒットします。ファイト!
- askaaska
- ベストアンサー率35% (1455/4149)
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です)
補足
ご回答ありがとうございます。 検索して、トライしてみます。