.htaccessで本番サーバのtestディレクトリ以下でもルートパスを通す
ハマったのでメモ
先日、クライアントの本番サーバ上にtestディレクトリを作ってその中にテストページをアップロードするよう依頼された。
(http://foo.com/test/○○~みたいな感じ)
しかし、ソースを確認してみると、全てがルートパスで書かれたソースだった。
このままtestディレクトリ以下にアップロードしたところで当然読み込まれない。。。
手動でなおすこともかんがえたのだけれど、自分が書いたものではなかったので
どこまで直していいのかわからないし、何より面倒だった。
そこで、何か方法がないか調べてみると、どうやら.htaccessでなんとかできるっぽいのでやってみた。
他にもっとスマートなやり方があればぜひ教えてください。
画像を読み込ませる
RewriteEngine On
RewriteCond %{HTTP_REFERER} ^http://foo.com/test/(.*)$
RewriteRule ^(.*)$ /test/img/$1 [R]
CSSを読み込ませる
CSSの場合は、CSSファイルからまたCSSファイルを読み込む場合もあるので、Redirectさせるようにする。
画像のときと同じように、http://foo.com/cssディレクトリに、以下を記述した.htaccessを設置
RewriteEngine On
RewriteCond %{HTTP_REFERER} ^http://foo.com/test/(.*)$
RewriteRule ^(.*)$ /test/css/$1 [R,L]
存在しないディレクトリ
同じように、本番サーバ上に存在しないディレクトリの場合でも、
ディレクトリを作ってその中に.htaccessを格納すれば大丈夫だった。
RewriteEngine On
RewriteCond %{HTTP_REFERER} ^http://foo.com/test/(.*)$
RewriteRule ^(.*)$ /test/bar/$1 [R,L]
ほぼ下記のサイト様を参考にさせていただきました。ありがとうございました。
参考サイト
hibro - RewriteRuleを使ってみる
Author And Source
この問題について(.htaccessで本番サーバのtestディレクトリ以下でもルートパスを通す), 我々は、より多くの情報をここで見つけました https://qiita.com/Cuano/items/f41abc641e511cf8dec5著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .