.htaccessでリダイレクトする方法

ジュームラ2.5において、URLリダイレクトさせる場合、コンポーネントのリダイレクトでもできますが、

リストがながーくなって管理しづらくなる時もあります。

外部からありがたいリンクをもらっているページが表示されないととてももったいないので、これだけは絶対というのをいくつかリダイレクトコンポーネントではなく .htaccess の中にリダイレクト命令を直接書いておくことにしました。

こうすると、不正アクセス狙いのリストがずらーと並んだ時に一括ごみ箱、ごみ箱から削除して一緒に大事なリダイレクトも消してしまった、ということが防げるのでは、と考えました。

Redirect Permanent /hogehoge.html http://www.fugafuga.jp/mogumogu.html

という書式でいいと思いせっせと追加してたのですが、

.htaccess の中の英文説明で "ensure rule [R=301,L]" なんたらかんたらと書いてありますが、Redirect 命令にはそういうオプションはないようです。

これは何か違うのかとjoomla forumで調べたところ

http://forum.joomla.org/viewtopic.php?f=618&t=634003

のスレッドを見つけました。

joomla2.5 の.htaccess 内でリダイレクトさせるには Redirect Permanent ではなく RewriteRule [R=301,L] でやるのがよいとのことです。使っているモジュールが違うのだとか。

よく分からないのですが、書式を真似したらうまくいきました。

RewriteRule ^hogehoge.html http:/www.fugafuga.jp/mogumogu.html [R=301,L]

とすればいいとのことです。

ディレクトリごとリダイレクトしたいときは以下のような書式で:



Redirect 301 /oldfolder http://www.example.com/newfolder
上記の代わりに
以下を使うべし
RewriteRule ^oldfolder/(.*) http://www.example.com/newfolder/$1 [R=301,L]

ーーーーーーーーーースレッドから引用

.htaccess 中に リダイレクトを RewriteRule で 書き込む場合は英語で 「ここに書きなさい」というコメント文があるのでその位置に書き込みましょう。