.htaccess の Redirect と Content Negotiation の相性

2007-7-21 11:17

以前のサイトから、このブログに移行しましたが、MT から WordPress に移行したため、いくつかの URL(URL) が変わってしまいました。個別記事 (Permalink) については同じにしましたが、アーカイブページ・カテゴリーのページなどの URI 異なってしまっています。そこで .htaccess ファイルに Redirect ディレクティブを記述しようと思ったのにうまくいきません。

原因はどうも Apache のコンテント・ネゴシエーション (Content Negotiation) とぶつかっているようです。リダイレクトされないだけならまだしも、404 Not Found になってしまうので困ります。httpd.conf の Options から MultiViews を外したらうまく Redirect されるようになりました。

以前は同じ設定をしていてもうまくリダイレクトされた記憶があるので、Apache の特定のバージョンによるものなのかわかりませんが、Apache 2.0.46 で試しても同様でした。ファイルが存在しているといけないようで、ファイルを削除してしまえばよいようです。たとえば .htaccess で

Redirect permanent /hoge http://example.com/newhoge/

の様に指定した場合、 /hoge.html などのファイルが残っていると、404 Not Found になります。/hoge.html を削除またはリネームすれば良さそうです。ハマりました。

  • ブックマーク : add to hatena hatena.comment (1) add to del.icio.us (1) add to livedoor.clip (0) add to Yahoo!Bookmark (0) Total: 2 アクセス: 1337回
  • カテゴリー : Apache
  • タグ :
  • トラックバック URL :

コメントはまだありません

コメントはまだありません。

このコメント欄の RSS フィード トラックバック URL

コメントフォームは現在閉鎖中です。

46 queries. HTML convert time: 6.439 sec. Powered by WordPress ME. Valid XHTML
Copyright © 2003-2008 @ futuremix.org | 5jp.net ログイン