2017-06-22 1 views
0

私は既存のギャラリーを置き換えるために私のクライアントのウェブサイト用の新しい画像ギャラリーを作成しました。どちらのギャラリーでも、すべての画像は同じで、同じファイル名を共有します。htaccessを使用して特定のプレフィックスで始まるファイルを別のディレクトリにリダイレクトするにはどうすればよいですか?

NEWギャラリーの画像ファイルは、/ files/galleryディレクトリに保存されています。 OLDギャラリーの画像ファイルはディレクトリ/ filesに保存されます。

ギャラリーイメージを/ filesから削除しますが、今すぐ見つけられる/ files/galleryディレクトリにリダイレクトします。

/filesディレクトリにギャラリーイメージ以上が含まれているため、 'gallery'という単語で始まるファイル名のみを対象とするhtaccessルールが必要です。

私は何時間も答えを探していて、同様の問題に対する答えのコードを使用して解決策をまとめようとしましたが、無駄です。

答えて

1

私はあなたが既に試したかわからないので、ここではパターンマッチングを持つ単純なリダイレクトです:これにより

RewriteRule /files/(gallery[^/]+)$ /files/gallery/$1 [L,R=301] 

は、/files/gallery-pic01.png/files/gallery/gallery-pic01.pngにリダイレクトされます。

あなたはギャラリー接頭辞を取り除くために必要がある場合は、単にキャプチャグループの括弧移動:正規表現で

RewriteRule /files/gallery([^/]+)$ /files/gallery/$1 [L,R=301] 

を、NOTである「任意の文字を意味し[^/]の点に注意してください。スラッシュ "。これにより、誰かが/files/gallery/new_picture.pngをリクエストしたときのリダイレクトは回避されます。

+0

リダイレクトディレクティブは、正規表現ベースのパターンをサポートしていません。 – starkeen

+0

@starkeenはそれを混ぜて、申し訳ありません。私の答えを更新しました。 – Derlin

+0

答えてくれてありがとうございます@デーリン。 残念ながら、ルールは機能しませんでした。 RewriteEngineがオンで、私のホストによると、mod_rewriteはサーバー上で有効になっています。それ以外に何ができるのか分かりません。 – JamesP

関連する問題