ワードプレスの独自ドメイン設定方法とリダイレクト方法

このQ&Aのポイント
  • ワードプレスの独自ドメイン設定方法とリダイレクト方法について説明します。
  • さくらのサーバーでWordPressをインストールし、独自ドメインを設定しましたが、リダイレクトがうまく動作していません。
  • 初期ドメインへのアクセスを独自ドメインにリダイレクトさせる方法や特定のURLへのアクセスを制御する方法について詳しく説明します。
回答を見る
  • ベストアンサー

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

さくらのサーバーで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> よろしくお願いします。

  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
回答No.1

ちょっと状況がつかみにくいのですが、まずは「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
natyo4235
質問者

お礼

こちらもご回答いただきましてありがとうございます。 1ができました! 大変参考になりました。ありがとうございました。

関連するQ&A

  • SSLのリダイレクトについて

    sslのリダイレクトの作業を急いでやらないといけないのですが、sslに関しては全くの初心者なので調べながらいろいろやってみましたがどうしてもうまくいかず困っています。。 Wordpressでサイトを作成していてドメイン直下の.htaccessにリダイレクトの記述をしています。 サーバーはGMOのiCLUSTAで、sslはジオトラストです。 http://○○○.jp/ にアクセスした場合に、 https://ssl.○○○.jp/ へリダイレクトされるようにしたいです。 .htaccessの記述内容です # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress RewriteEngine on RewriteCond %{HTTPS} on RewriteRule ^(.*)$ https://ssl.○○○.jp/$1 [R=301,L] この記述をしていますが、リダイレクトされたりされなかったりの不安定な状態です。 されないことの方が多いのでどの条件で動いているのかがわかりません。 RewriteCond %{HTTPS} on を、 RewriteCond %{HTTPS} off にするとリダイレクトされますが、処理がループされていますという表示が出てしまいます。 どのような記述をすればうまくいくのでしょうか?

  • htaccessでindex.htmlありに統一

    「http://hoge.jp/web/」にアクセスがあった場合に 「http://hoge.jp/web/index.html」にリダイレクトさせようと考えています。 調べたところ.htaccessに下記の記述でできるという事まではわかったのですが「Internal Server Error」になってしまいます。 何が原因なんでしょうか? RewriteEngine on RewriteCond %{REQUEST_FILENAME} -d RewriteCond %{REQUEST_FILENAME}/index.html -f RewriteRule ^(|.*/)$ /$1index.html [R,L] 上記が解決できた場合に合わせての質問案ですが、ドメイン直下だけは「index.htmlなし」にしたいと考えてます。 http://hoge.jp/index.html ↓ http://hoge.jp/ よろしくお願いします。

  • レンタルサーバードメインから独自ドメインへの・・・

    レンタルサーバードメインから独自ドメインへのリダイレクトをしたいと思っています。 htaccessを駆使して、以下のように設定したのですが、思い通りに行きません。 どなたかアドバイス頂けないでしょうか。 よろしくお願いします。 --- RewriteEngine On RewriteCond %{HTTP_HOST} ^aaa\.lolipop\.jp\.* RewriteRule ^(.*) http://www.bbb.jp/ [R=301,L] ※実施したいこと:[aaa/lolipop.jp/]配下のフォルダ・パス全てにアクセスした時、[http://www.bbb.jp/]にリダイレクトさせたい。

  • WordPressの.htaccessについて

    こんにちは。 wordpressでマルチサイトの環境を設定しようとしています。 ネットワークの設置より、次のような.htaccessを/wordpress/ディレクトリに配置しました。 --- RewriteEngine On RewriteBase /wordpress/ RewriteRule ^index\.php$ - [L] # add a trailing slash to /wp-admin RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L] RewriteRule . index.php [L] --- このファイルを配置しなくても、 http://domain.jp/wordpress/wp-admin/network/setup.php や http://domain.jp/wordpress/wp-admin/network/users.php は表示されますし、 http://domain.jp/wordpress/ にアクセスすると1つ目のブログが表示されます。 しかしこのファイルを配置しない場合、新たに作成した2つ目のブログである http://domain.jp/wordpress/test01/ は表示されません。ファイルを配置した場合は表示されます。 しかし、ディレクトリを見ても/wordpress/にはtest01ディレクトリは存在しません。おそらくは何らかの転送を行っているのだと思いますが、上記の.htaccessファイルを配置した場合、 http://domain.jp/wordpress/test01/ はどういう法則で、どこに転送されるのでしょうか。 どなたか教えてください。よろしくお願いいたします。

    • 締切済み
    • PHP
  • wwwありかつhttpsへリダイレクトさせたい

    .htaccessに以下の記述をしていますが、 ブラウザでURLに”xxxx.jp”と"http://xxxx.jp"と入力してアクセスすると、 https://xxxx.jpにリダイレクトされてしまます。 ドメインxxxx.jpを.htaccessに記載せずにhttps://www.xxxx.jpにリダイレクトさせる記述をご存知でしょうか? wwwありの場合"www.xxxx.jp"、"http://www.xxxx.jp"は意図したとおり”https://www.xxxx.jp"に転送されています。 --- RewriteEngine On RewriteCond %{HTTPS} off RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] ---

    • 締切済み
    • CGI
  • httpからhttpsへのリダイレクト方法

    すいません、よくわかりませんので教えて下さい。.htaccessに記述してhttpにアクセス来たものをhttpsへリダイレクトしたいです。 今の状況は下記です。 AddHandler application/x-httpd-php53 .php RewriteEngine On # Main RewriteRule for multidomain. RewriteCond %{HTTP_HOST} ^(sanetsu.com) RewriteCond %{REQUEST_URI} !^/(sanetsu.com)/ RewriteRule ^(.*)$ http://www.sanetsu.com/$1 [L] # Main RewriteRule for multidomain. RewriteCond %{HTTP_HOST} ^(www.burikama.com) RewriteCond %{REQUEST_URI} !^/(www.burikama.com)/ RewriteRule ^(.*)$ /%{HTTP_HOST}/$1/ [L] # Main RewriteRule for multidomain. RewriteCond %{HTTP_HOST} ^(burikama.com) RewriteCond %{REQUEST_URI} !^/(burikama.com)/ RewriteRule ^(.*)$ http://www.burikama.com/$1 [L] # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress すいません、上記の記述をどのように変更したらhttpsへリダイレクトさせることができますでしょうか?前任のweb担当の方と連絡が付かないので教えていただけたらありがたいです。 宜しくお願い致します。

    • ベストアンサー
    • HTML
  • マルチドメインでの.htaccessについて

    新サイト(新ドメイン)に引っ越しをしたのですが、 マルチドメイン環境でのリダイレクトの方法がうまく行かず困っています。 お手数ですが、やり方を教えていただけないでしょうか。 前提として、旧サーバはマルチドメインで2つのドメインを使用しており、 ルート直下は下記の構成になっています。 /.htaccess /index.html /staff/ /corp/ /ex/  ←ここだけ別ドメインに設定(仮にhttp://hoge.comとします) http://hoge.comはそのまま使用したい、 それ以外のファイルすべてを新サーバ(新ドメイン)にリダイレクトしたい、 という状況です。 htaccessは下記のように設定しているのですが、 /ex/(http://hoge.com)も含めてすべてリダイレクトしてしまいます。 -------- RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} !(^/ex/) RewriteRule ^(.*)$ http://www.new.com/ [R=301,L] -------- 下記のサイトを参考にしており、RewriteRule以外はそのままです。 http://www.kaden1000.com/2012/11/fc2-28/ 参考サイトのように、RewriteRule ^$ とした場合リダイレクトしないため、 RewriteRule ^(.*)$ としています。 (ここが問題のような気はしています。。。) あまり詳しくないので、素人でわかるレベルで教えていただけないでしょうか。 よろしくお願いいたします。

  • 301リダイレクトの例外処理

    WEBサイト全体に 拡張子がhtmとhtmlが混在していて管理がわずらわしいので、 .htaccessで下記のような設定をしました。 ドメイン直下に.htaccessを置いているので、サイト全体でこの設定が有効に なっているのですが、あるフォルダだけこれが適用されないように 設定をしたいと思います。 いろいろやってみたのですが、今ひとつ正常に動いてくれません。 どのようにすればいいのでしょうか。 -------------------------------------------------------------- Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^XXX.jp RewriteRule ^(.*)$ http://www.XXX.jp/$1 [R=301,L] Options +FollowSymLinks RewriteEngine on RewriteCond %{THE_REQUEST} ^.*/index.html RewriteRule ^(.*)index.html$ http://www.XXX.jp/$1 [R=301,L] Options +FollowSymLinks RewriteEngine on RewriteCond %{THE_REQUEST} ^.*/index.htm RewriteRule ^(.*)index.htm$ http://www.XXX.jp/$1 [R=301,L] -------------------------------------------------------------- サーバーはApache/1.3.42 .htaccessファイルを置いているのは、ドメイン直下です。

  • wordpressでマルチドメインのサイト運営

    wordpressでマルチドメインのサイト運営を試みたところ、新ドメインサイトのダッシュボードをクリックすると以下のような文言がでてしまいます(添付ファイルご参照、サイトは表示されます)。 "Not Found The requested URL /wp-admin/ was not found on this server." sakuraのサーバーを使っており、以下のURLを上から下まで順にやっておりました。 「複数サイト運用方法(複数ドメイン型)」 http://www.templateking.jp/practical/build/multi_dom.html テキストでは非常に分かりにくかったため、お手数ですがURLをご参考にして頂きたく思います。 色々調べてみて、.htaccessの内容が原因の気もするのですが、まだ解決には至っておりません参考までにrewrite ruleを記載させて頂きます。何卒宜しくお願い致します。 RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] # add a trailing slash to /wp-admin RewriteRule ^wp-admin$ wp-admin/ [R=301,L] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^(wp-(content|admin|includes).*) wp/$1 [L] RewriteRule ^(.*\.php)$ wp/$1 [L] RewriteRule . index.php [L]

  • ワードプレスでURLをルートに移動できません。

    WPでURLをルートディレクトリーに変更しようとしているのですができません。 以下の作業を行いました。 1.WordPressダッシュボードにログインして、 「設定」→「一般設定」画面でのサイトアドレス (URL)の変更 http://hostname.sakura.ne.jp/wp/ を http://hostname.sakura.ne.jp と書き換え。 (※hostnameはダミーです) 2.FTP経由にて、 .htaccessとindex.phpをwpホルダより、www直下にコピーを設置 3.FTP経由にて、www内 .htaccessの RewriteRule . /index.php [L] という記述を RewriteRule . /wp/index.php [L] に書き換え。 属性を644から705へ変更 4.FTP経由にて、wwww内 index.phpの 最終行の記述 require( dirname( __FILE__ ) . '/wp-blog-header.php' ); を require( dirname( __FILE__ ) . './wp/wp-blog-header.php' ); に置き換え。 属性を644から705へ変更 5. WordPressダッシュボードにログインして、 「設定」→「パーマリンク設定」を選択。 以上1~5を実施した結果、 http://host.sakura.ne.jpにアクセスすると 「internal server error」 と表示されるようになってしまいました。 http://host.sakura.ne.jp/wp/にアクセスすると 画面は出てくるのですが、コンテンツが無い旨表示されます。 ちなみに、http://host.sakura.ne.jp/wp/経由での管理画面へのアクセスや操作は問題ありません。 この作業をするにあたり、参考にしたのは以下のサイトです。 http://wpdocs.sourceforge.jp/WordPress_%E3%82%92%E5%B0%82%E7%94%A8%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%AB%E9%85%8D%E7%BD%AE%E3%81%99%E3%82%8B これ以外に確認すべき点がありましたら、 ご教授いただけると助かります。 何卒よろしくお願いいたします。

専門家に質問してみよう