Wordpressで画像の表示先URLを変更する(upload_pathとupload_url_path)
画像のアップロード先フォルダと表示URLを変更する事ができます。
それにより画像URLからWordpressのインストール場所がばれない様にできます。
upload_pathとupload_url_pathは、必ず同時に設定する必要があります。
Wordpressで画像の表示先URLを変更したい
Wordpressでアップロードした画像の表示先URLを変更する際にあれこれやった備忘録です。
よくWordpressのインストール先とサイト表示URLは変える事が多いですよね。
サイト表示先のURLは比較的簡単に切り替える事ができます(表示URLを変える方法は別記事を参照ください)。
それによりWordpressのシステムがインストールされているディレクトリを隠す事ができます。
セキュリティ面でも最低限そうするべきでしょう。
画像URLでインストール先がばれる
この場合、管理画面の「メディア」からアップロードした画像にも対策が必要です。
その画像の表示先URLに、Wordpressのインストール先ディレクトリまで含まれるためです。
せっかくインストール場所を隠たのに、画像の表示URLからばれては意味がありません。
そこで画像表示URLを変更する(Wordpressディレクトリ部分を消す)設定をしていきます。
URLを変更したら必ずおこなう事
本記事では紹介しませんが、メディアファイルのアップロード先やURLの変更をした後に忘れずにおこなう事があります。
それはすでに存在するページ上の画像URLの変更作業です。
URLが変わるのですから、今まで記事や固定ページ上に設置した画像URLがそのままだと見えなくなりますよね。
方法は割愛しますが、DB上から一括でURLを変更するなどで修正していく必要があります。
画像URL変更後は忘れずにおこなって下さいね。
options.phpを開く
これは他の記事でもよく紹介されている方法になります。
Wordpressの管理画面TOPを開き、wp-admin/に続けてoptions.phpと入力しましょう。
ドメイン名(Wordpressの設置場所)/wp-admin/options.php
オプション画面の表示
このページで様々なオプション設定ができる様になっています。
「u」の欄を探す
項目はアルファベット順に並んでいますので、「u」の欄を探しましょう。
下から探した方が早いかも知れません。この2つは並んでいます。
upload_path
upload_url_path
upload_path
これはアップロードをする実際の場所の指定となります。
一応確認しておくと、通常画像は以下の配下に保存されます。
(Wordpressの設置場所)/wp-content/uploads/…
年や月のフォルダもこの後に続く事になりますね。
upload_pathに別の場所を指定する事で、今後はそこに画像が保存される事になります。
パーミッション変更が必要な場合もある
ここで新しく指定したフォルダはUP時に自動生成されます。
サーバーの環境によっては、生成されたディレクトリにパーミッション制限が掛かる場合があります。
その場合はFTPソフトを使って、ディレクトリのパーミッションを「755」に変更しましょう。
フォルダは全て「755」へ変更、中にある年や月のフォルダも同様です。
upload_url_path
アップした画像を表示させるURLの指定欄ですね。
ここに記載したURLで、画像を表示させる事ができる様になります。
upload_pathとupload_url_pathの変更
では早速この2項目を追記していきます。
インストールディレクトリと公開URLが同じ場合
まずはWordpressの設置場所とサイト表示URLが同じ場合からです。
今回はドメイン直下のimgフォルダを指定します。
記述例1
upload_path = img
upload_url_path = https://lpeg.info/img
この「img」は、/wp-contentがある位置と同じ位置に作ってます。
基準は「Wordpressのインストール位置」がベースであり、今回はドメイン直下となりますね。
/img(画像の保存先)
/wp-content
/wp-admin
/wp-config.phpその他…
wp-contentやwp-adminと同じ階層に/imgがある。
新しくメディアでUPする画像は全てこの中に保存され(年月のフォルダも自動生成)、それ以前の画像は以前のディレクトリのままとなります。
2つの項目へ追記をしたら、一番下にある「変更を保存」ボタンを必ず押しましょう。
入力例
インストールディレクトリと公開URLが違う場合
次の例は、Wordpressの設置場所が「https://lpeg.info/test/」に入っている場合です。
Wordpress設置場所:https://lpeg.info/test/
サイト表示先:https://lpeg.info/
インストールディレクトリとサイト表示URLが違う場合ですね。
このディレクトリ名を隠す事が本記事の目的です。
ですのでベストなのは、/testと同階層への設置です。
相対パスの指定が必要
先ほども述べた通り、基準は「Wordpressのインストール場所」がベースです。
ですので「https://lpeg.info/test」からのパスにしなければなりません。
/testと同階層にするには、一つ上の階層から指す相対パスを記述します。
記述例2
upload_path = ../img
upload_url_path = https://lpeg.info/img
../としているところが相対パスです。
/img(画像の保存先)
/test/wp-content
/test/wp-admin
/test…その他ファイル
wp-contentやwp-adminよりも上の階層にimgがあります。
2つの項目へ追記をしたら、一番下にある「変更を保存」ボタンを必ず押しましょう。
メディアの設定確認
値を設定した後に、管理画面の「設定」→「メディア」を確認すると、下に項目が表示されるようになります。
2つの項目が追加されています(上は同階層のケースです)。
アップロードするファイルの保存:「」
ファイルの完全なURLパス:「」
ここがきちんと先ほど設定した項目になっているかどうか確認しましょう。
ここからの編集も可能です。
過去の画像一覧は見えなくなる
では管理画面の「メディア」を開いてみましょう。
今までの画像サムネイルが見えなくなっているのがわかると思います。
これまでとは違うimgフォルダの中を開いている訳ですから、それまで保存していた画像は見えなくなる訳ですね。
とにかくまずは、新しく画像をアップロードしてみましょう。
するとその画像だけが見える様になり、新しいURL名で保存されているのがわかりますね。
画像が映らない場合
もし映らない場合はアップした画像を一度消し、生成されたimgフォルダのパーミッションを確認して下さい。
imgや年や月のフォルダはアップロードと同時に自動生成されます。
パーミッションを755に変えてから、再度画像をアップしてみて下さい。
次は表示されるはずです。
今までの保存画像を新しい区画に入れる
現在は新旧のメディアフォルダが個別に存在している状態です。
前の保存先にある画像を一式、新しい保存先へ複製コピーしてきましょう。
これでこれまでアップしてきた画像サムネイルも見える様になりましたね。
元の位置に画像を残しておくのには、ちゃんと理由があります(後述します)。
画像URLを確認してみる
この設定を掛ける前と後でURLを比較してみました。
Wordpressの設置場所とサイトURLが「同じ場合」も「違う場合」も同じURLにできますね。
同じ場合:https://lpeg.info/wp-content/uploads/2022/01/image.jpg
違う場合:https://lpeg.info/test/wp-content/uploads/2022/01/image.jpg
変更後:https://lpeg.info/img/2022/01/image.jpg
Wordpressインストールディレクトリを全て隠す事ができています。
wp-config.phpを編集する方法の場合
options.php以外に、wp-config.phpにアップロード先を書き加える方法もあります。
しかしこの方法だと「wp-config.phpより上には出せない」制限が掛かります。
wp-config.php以下の階層は問題ありませんが、より上には持っていけません。
「../」相対パスが使えない
具体的に言うと「相対パス」が機能しないのです。
例えばWordpressシステムをドメイン名/testにインストールしているとしましょう。
その場合、wp-config.phpより一つ上の位置になる「ドメイン名直下」に持ってくる事ができないのです。
https://lpeg.info/test/img /testより下階層は〇
https://lpeg.info/img /testと同階層は×
define( 'UPLOADS' , '../'.'uploads' ); ×この様に書けない
ですのでwp-config.phpの位置より上に持ってくる際は、wp-config.phpへの追記は使えない事になりますね。
upload_url_pathだけを変える事ができるか
この方法で、確かにWordpressの設置場所は画像URLから消えます。
しかし本来はアップする場所は変えずに、表示URLだけを変えたかったのが本音です。
そうすればこれまでアップした画像の表示URLも一斉に変わりますし、複製してこなくてもメディア内で新旧画像をセットで見る事ができます。
upload_url_pathだけを変える事はできない
それではこの記事の「肝」になる部分に触れます。
調べる前までは、アップロードするメディア位置はそのまま、表示先URLだけを変える事ができると思っていました。
実際に画像が置かれている位置でないとダメ
しかし調べていく中でこのupload_url_pathは、自由なURLに変更できない事がわかりました。
常にupload_pathによって保存指定されている画像位置を示す必要がある訳です。
upload_url_pathのみ変更するとどうなるか
存在しない架空の位置を入れた場合、upload_pathは変更していないのでアップロードはできます。
しかしアップした画像はメディアライブラリ上にも表示されず、実際の表示URLも404エラーなど存在しない扱いになります。
つまり、「upload_pathとupload_url_pathとはセット」で入力する必要があるのですね。
表示URLだけを変える事はできない、とても勉強になりました。
upload_pathとupload_url_pathは、セットで変更する事
どちらかだけの変更はできない
upload_url_pathの指定先には実物画像が必要
メディアへの外部リンクが切れる可能性
他にもupload_pathとupload_url_pathをセットで変更した方が良い理由があります。
セット変更により保存先データの位置が変わるという事は、過去の保存場所とURLを残せるという意味にもなります。
外部からのメディアへのリンクを維持できる
特にPDFをアップしていると、ユーザーがそのPDFファイルのURLをめがけてリンクを貼っている場合があります。
もし表示URLだけを変えた場合、変更前の区画に実物が無いとこの外部リンクが切れてしまいますよね。
以前の画像が残っていれば、外部リンクは維持できます。