質問: ### 実現したいこと 画像やCSSのパスを置換したいのですが、なかなかうまくいきません。 > > 「置換前のパス」 > > www.example.com > > > ・具体例 > > > > > > > --- > > 「置換後のパス」 > > > test.example.co.jp > > > ・具体例 > > > > > > > ### 下記が利用できる環境です。 * .htaccess * javascript(jQuery) * php ※WordPressにて作成 --- ネット上の情報などを調べて下記ソース等を試しているのですが、なかなか反映がされません。 特に.htaccessは「Internal Server Error」になってしまいます。 ### jQuery ``` $('body').each(function(){ var txt= $(this).html(); $(this).html(txt.replace(/www\.example\.com/g,'test.example.co.jp')); }); ``` ### .htaccess ``` RewriteEngine On RewriteCond %{HTTP_HOST} ^www.example\.com$ [NC] RewriteRule .* test.example.co.jp%{REQUEST_URI} [R=301,L] ``` 何か根本的に間違えているのかもしれませんが 何卒お力をお貸しいただけないでしょうか? ### 補足 とあるサイトのリニューアル準備をしています。 最終サブドメインで公開をするのですが、画像やCSSはメインドメインを参照するため絶対パスで指定をしています。 あらかじめ本番用のパス(置換前)で記述をしておき、 テストの時点ではテスト用のパス(置換後)のURLを参照させるが目的です。
回答: jQueryでやるのであればこんな感じじゃないでしょうか。 linkタグとimgタグだけを対象にしています。 ``` ``` また `.htaccess` で URLを書き換える方法は、基本的に `www.example.com` の `.htaccess` に記述して、URLをReWriteするやり方なので、本体サイトの挙動が変わってしまうので、今回の利用ケースにはマッチしないと思います。 もし .htaccess(Apache) だけでやりたいなら、サブドメイン用のサイトのApacheにプラグインを追加して、レスポンスボディを書き換えるなどは可能だと思います。 その他の案 * WordpressのPHPが自分でいじれるのであれば、HTMLを吐き出す際に、JSと同様に正規表現でURLを書き換えてしまう。 * Apache(Webサーバ)の前段に別途プロキシサーバをおいて、プロキシサーバで、レスポンスHTMLのURLを書き換える