解決済み

ワードプレス 独自ドメイン設定

  • 困ってます
  • 質問No.9619650
  • 閲覧数104
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 83% (201/242)

さくらのサーバーでwordpressをインストールしてサイトを設けました。

現状、左のURLでアクセスすると、右の結果が返ります。
・syoki_domain.ne.jp -> 表示される(あたりまえですが、参考サイトに従って正規化したつもりがまだ表示されてしまっているため)
・syoki_domain.ne.jp/index.php -> リダイレクトされてsyoki_domain.ne.jpで表示される
・syoki_domain.ne.jp/random_string -> syoki_domain.ne.jp/random_stringのURLのままサイト自体が表示され、記事部分は404 not foundになっている。syoki_domain.ne.jp/index.php/random_stringだと、syoki_domain.ne.jp/random_stringになる。
ドメイン部分を独自ドメインにしてアクセスしてみても、それぞれ同じ結果になります。
上記の現状から、
1.初期ドメインへのアクセスを独自ドメインにリダイレクト
2.dokujidomain.ne.jp/random_stringでアクセスされた場合、random_stringを削除して独自ドメインにリダイレクト
をしたいです。

1は、
https://help.sakura.ad.jp/hc/ja/articles/206054622--htaccess%E3%81%AB%E3%82%88%E3%82%8B%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E5%88%B6%E5%BE%A1
「初期ドメインにアクセスがあった場合独自ドメインへリダイレクトさせたい
さくらのレンタルサーバの初期ドメインを表示させたくない場合に有効です。
.htaccessの設定例
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?[^.]+\.sakura\.ne\.jp$ [NC]
RewriteRule .* http://www.example.jp%{REQUEST_URI} [R=301,L] 」
上記URLに↑とあるのですが、ルートディレクトリ\hogedirectory\Wordpressという構造になっているので、
RewriteCond %{HTTP_HOST} ^(www\.)?[^.]+\.sakura\.ne\.jp$ | %{HTTP_HOST} ^(www\.)?[^.]+\.sakura\.ne\.jp\\hogedirectory$ [NC]
RewriteRule .* http://www.mysite.jp%{REQUEST_URI} [R=301,L]
↑こうで大丈夫でしょうか?

2は、wordpress側でやるべきことなんでしょうか?いまいち情報が見つからないため詳しいサイトなどあれば教えていただきたいです。



ワードプレス本体はsyoki_domain.ne.jp/mydirectoryにインストールしました。
wordpressの一般設定->wordpressアドレス、サイトアドレスにはdokujidomain.ne.jp/mydirectory、dokujidomain.ne.jpとして設定してあります。

.htaccessは以下です。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

よろしくお願いします。

質問者が選んだベストアンサー

  • 回答No.1

ベストアンサー率 58% (343/584)

ちょっと状況がつかみにくいのですが、まずは「1.初期ドメインへのアクセスを独自ドメインにリダイレクト」用の「.htaccess」です。初期ドメインやwwwありの独自ドメインを、wwwなしの独自ドメインへと転送します。

最初から書いてある8行よりも、上のほうに書くのがコツです。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_NAME} ^www\.|\.sakura\.ne\.jp$ [NC]
RewriteRule ^(.*)$ http://dokujidomain.ne.jp%{REQUEST_URI} [R=301,L]
</IfModule>

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>


なお、「syoki_domain.ne.jp/index.php」や「syoki_domain.ne.jp/index.php/random_string」の「index.php」がリダイレクトされるのは、正しい動作です。下記の1行によって、「index.php」が削除されるからです。

RewriteRule ^index\.php$ - [L]


また、「random_string」が「random_string」のままで404エラーを吐くのも正しいです。そういうURL(スラッグ)の記事があったら記事を表示し、なかったら404ページを表示しようとします。

これは何もWordPressにかぎった話ではなく、どんなサイトでもURLがなかったら、基本的には404エラーになるはずです。

そのため、「2.random_stringを削除して独自ドメインにリダイレクト」というのは、別にそこまでしなくてもいいのではないかと思います。


なお、質問を拝見させていただいたかぎりでは、どうも初期ドメインと独自ドメインとディレクトリがゴチャゴチャになっていて、そこで迷われているような印象があります。私もWordPressに挑戦しようと数年前から「さくらのレンタルサーバー」を借りていて、ほかのレンタルサーバーのことは知りませんが、さくらは初期ドメインと独自ドメインが複雑に絡みあっていて、なんだかすごく難しいですよね。

いろいろな対処方法があるかと思いますが、さくらの公式サポートでは、ドメインの設定画面側で独自ドメインとディレクトリを一気に設定しています。この方法だと、WordPress側の一般設定を触らなくてもいいというメリットがあります。

もしかすると最初からインストールしなおすことになるかもしれませんが、もしかしたら、こちらの方法のほうが簡単かもしれません。
お礼コメント
natyo4235

お礼率 83% (201/242)

こちらもご回答いただきましてありがとうございます。

1ができました!
大変参考になりました。ありがとうございました。
投稿日時 - 2019-05-26 19:29:02
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

ピックアップ

ページ先頭へ