【.htaccess】【CakePHP】CakePHPでWebサイトを作り変えるにあたり、

旧URLからのリダイレクトをさせたいと思います。
しかし、app/webroot/.htaccess に
RedirectMatch /old/url/(.*) http://newsite.com/new/url/$1
とするとCakePHP
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
のせいで
http://newsite.com/old/url/hoge
にアクセスした時
http://newsite.com/new/url/hoge?url=/old/url/hoge
といった形になってしまいます。
http://newsite.com/new/url/hoge
にリダイレクトさせるにはどうしたらよろしいでしょか?

どうぞ、よろしくお願いいたします。

回答の条件
  • URL必須
  • 1人2回まで
  • 13歳以上
  • 登録:2011/01/02 15:20:16
  • 終了:2011/01/09 15:25:03

回答(1件)

id:hiromi2424 No.1

hiromi2424回答回数2ベストアンサー獲得回数02011/01/02 17:09:12

ポイント60pt

.htaccessの書き方の問題です。

RewriteCond %{REQUEST_URI} !old/url

として古いURLは書き換えないようにすればOKです。

また、アプリケーション側での対応として、CakePHP >= 1.3なら、カスタムルーティングで対応できます。

RedirectRouteを使えば希望の動作は見込めます。

https://github.com/Phally/route_enhancements

CakePHPのバージョンやApacheのバージョンなど、環境は忘れずに書いてください。

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

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません