すべての画像をサーバー上の 1 つのフォルダーに集中しています。単一の集中型エンジンを使用して各ドメインのそれぞれのコンテンツを取得する Web サイトがいくつかあります。画像のディレクトリ構造は次のとおりです。
images/
website1.com/
image1.jpg
image2.jpg
...
website2.com/
image1.jpg
image2.jpg
...
website3.com/
image1.jpg
image2.jpg
...
ただし、HTML からこれらの画像リソースのいずれかを要求する場合、次の URL を使用したくありません。
http://website1.com/images/website1.com/image1.jpg
代わりに、私は単に欲しい:
http://website1.com/images/image1.jpg
ただし、これを翻訳する必要があるシナリオが 2 つあります。ライブサーバーと開発サーバー。実際のケースは簡単に思えます。 %{HTTP_HOST} をパスに書き直してください。開発サーバーの場合は少し異なります。テスト サイトを表示できるように、dev_domain という Cookie を使用します。例: $_COOKIE['dev_domain'] = website1.com.
ライブケースと開発サーバーケースの両方を作成するためのルールは何ですか?
これは私がこれまで開発ケースで持っていたものですが、うまくいきません:
RewriteBase /
RewriteCond %{HTTP_COOKIE} dev_domain=([^;]+) [NC]
RewriteCond %{THE_REQUEST} ^/images/(.*)$
RewriteRule ^/images/(.*)$ images/%1/$1 [NC,L]
これは私がライブケース用に持っているものですが、ライブにプッシュしていないため、動作するかどうかはまだわかりません (条件は開発サーバーを除外することです):
RewriteCond %{HTTP_HOST} !^dev.mainsite.com$
RewriteRule ^/images/(.*)$ /images/%{HTTP_HOST}/$1 [NC,L]
私が間違っていることについてのアイデアはありますか?