WordPressのURL設定を触るときに、?p=123を消したい場合と、/wp/のようなサブディレクトリを公開URLから外したい場合を混同しやすいので、自分用に整理しておく。
この2つは別の設定。さらに、すでに公開済みのURLを変更する場合は301リダイレクトも考える必要がある。
まず分けて考える
| やりたいこと | 主に確認する場所 |
|---|---|
?p=123を投稿名のURLにしたい |
設定 → パーマリンク |
WordPress本体は/wp/に置きつつ、公開URLはルートにしたい |
設定 → 一般 の WordPress Address / Site Address + サーバー設定 |
| 公開済みページのURLを変更したい | 301リダイレクト、内部リンク、canonical、サイトマップ |
?p=123を分かりやすいURLに変更する
これはパーマリンク設定の話。
- WordPress管理画面を開く
- 「設定」→「パーマリンク」を開く
- 「投稿名」など目的に合う構造を選ぶ
- 「変更を保存」を押す
例えば「投稿名」を選ぶと、投稿URLは次のような形になる。
https://example.com/sample-post/
カスタム構造を使う場合は、例えば次のように指定できる。
/%category%/%postname%/
ここで重要なのは、パーマリンク設定は投稿や固定ページなどのURL構造を決める設定であって、WordPress本体をどのディレクトリに置くかとは別という点。
URLに/wp/が入る場合は別問題
例えばWordPress本体を次の場所に置いている場合。
https://example.com/wp/
管理画面の「設定」→「一般」には、似た名前の2つのURL設定がある。
| 設定 | 意味 |
|---|---|
| WordPress Address (URL) | wp-admin、wp-contentなどWordPressコアファイルが置かれている場所 |
| Site Address (URL) | 訪問者にアクセスしてもらう公開サイトのURL |
WordPress本体を/wp/に置きながら、サイトはルートURLで公開したい場合は、概念的には次の形になる。
WordPress Address
![]()
Example Domain
Site Address
![]()
Example Domain
ただし、この2項目だけ変更すれば完了というわけではない。WordPress公式の「Giving WordPress Its Own Directory」の手順に沿って、index.phpやWebサーバー設定を合わせる必要がある。
ApacheとNginxでは設定場所が違う
以前のメモでは.htaccessを中心に書いていたが、これはApacheを使っている場合の話。
- Apache:主に
.htaccessやVirtualHost設定 - Nginx:
.htaccessは使わず、server block側で設定 - IIS:
web.configを使用
サーバーがNginxなのに.htaccessだけを直しても反映されないので、まずWebサーバーの種類を確認する。
パーマリンクが動かないときの確認順
パーマリンクを変更して404になる場合は、いきなりプラグインやテーマを疑うより、まずサーバー側のリライト設定を確認する。
- 「設定」→「パーマリンク」で再保存する
- Apacheなら
.htaccessが正しく読み込まれているか確認する - Nginxならserver blockの
try_filesなどWordPress向け設定を確認する - キャッシュを使っている場合はキャッシュを削除する
- それでも直らない場合にプラグインや独自コードの影響を確認する
公開済みURLを変更するときは301リダイレクト
すでに検索エンジンに登録されている投稿URLや、外部サイトからリンクされているURLを変更する場合は、旧URLをそのまま404にしない。
恒久的にURLを変更する場合は、旧URLから新URLへ301または308の永久リダイレクトを設定する。Googleも、ページが恒久的に移動した場合はサーバー側の永久リダイレクトを推奨している。
旧URL
![]()
Example Domain
↓ 301
新URL
![]()
Example Domain
あわせて次も確認する。
- サイト内の内部リンクを新URLへ変更
rel="canonical"が新URLを指しているか確認- XMLサイトマップに新URLが載っているか確認
- Search Consoleで新URLを確認
URL設定を変える前に気を付けること
特にWordPress AddressやSite Addressは、間違えると管理画面へアクセスしにくくなることがあるので、作業前に現在値を記録しておく。
wp-config.phpでWP_HOMEやWP_SITEURLを定義している場合は、管理画面から変更できないこともある。
自分の環境でURLを触る場合は、次の順番で考える。
1. ?p=123 を変えたいだけ?
→ パーマリンク
2. /wp/ を公開URLから外したい?
→ WordPress Address / Site Address + サーバー設定
3. すでに公開済みURLを変更する?
→ 301リダイレクトも設定
公式情報メモ
- WordPress.org:Settings Permalinks screen
- WordPress.org:Settings General screen
- WordPress Developer Resources:Giving WordPress Its Own Directory
- Google Search Central:リダイレクトとGoogle検索
最終更新:2026年9月

