ある時点でCDNに使用する予定のサブドメインがありますimages.example.com
。そのサブドメインのリクエストは次のようになりますhttp://images.example.com/path/to/some/image.jpg
。ただし、現在、すべてが同じサーバーでホストされており、サーバーはのimages.example.com
エイリアスとして持つように構成されていますexample.com
。
このようにして、両方のリクエストが機能します。
http://images.example.com/path/to/some/image.jpg
http://example.com/path/to/some/image.jpg
ただし、他の有効なリクエストもサブドメインとtldの両方で解決されます。
http://example.com/blog/post/Some-Interesting-Non-Image-Content
http://images.example.com/blog/post/Some-Interesting-Non-Image-Content
画像がストリーミングされる場合、URLに画像拡張子が付いていると仮定しましょう。に画像拡張子で終わらない.htaccess
すべてのリクエストをにリダイレクトするための書き換え条件/ルールを書きたいと思います。また、逆のルールが欲しいのですが。のリクエストが来た場合-にリダイレクトします。images.example.com
(\.gif|\.png|\.jpeg|\.jpg)
example.com
(\.gif|\.png|\.jpeg|\.jpg)
example.com
images.example.com
私はいくつかのことを試しましたが、失敗したようです(.htaccess正規表現を理解するのに問題があります):
RewriteCond %{HTTP_HOST} ^images\.example\.com (.*) (?!\.jpg|\.gif|\.jpg|\.jpeg)$
RewriteRule ^(.*) http://www.example.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^example\.com (.*) (\.jpg|\.gif|\.jpg|\.jpeg)$
RewriteRule ^(.*) http://images.example.com/$1 [R=301,L]