こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

さくらのサーバーで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>

よろしくお願いします。

投稿日時 - 2019-05-24 17:28:56

QNo.9619650

困ってます

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

ちょっと状況がつかみにくいのですが、まずは「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側の一般設定を触らなくてもいいというメリットがあります。

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

参考URL:https://help.sakura.ad.jp/hc/ja/articles/206057622

投稿日時 - 2019-05-25 17:28:03

お礼

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

1ができました!
大変参考になりました。ありがとうございました。

投稿日時 - 2019-05-26 19:29:02

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問