質問: 新しいurlのサブページへジャンプさせたい urlを変更しました。 旧urlのサブページから、新urlのサブページに自動ジャンプさせたく、 旧urlのサブページに下記のhtmlを記入しました。 旧サブページurl(例) http://www.example-old.com/sub/ 新サブページurl(例) http://www.example-new.com/sub/ しかし、とんだ先ではサーバー内での「403error(urlが見つからない)」のエラーになってしまいます。 サブページではなく のように、トップページへのジャンプに変更したらうまくとびました。が、出来ればサブページにとばしたいのです。 ちなみに旧urlは生きています。 サブページへのジャンプは出来ないのでしょうか? 私のやり方が間違っているのでしょうか?
回答: 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ファイルで指定しましょう。