- ベストアンサー
独自ドメインをサブドメインに301リダイレクトする
独自ドメインをサブドメインに301リダイレクトする方法を教えてもらえませんか? 例えばhttp:gg.comと言うサイトをサブドメインのhttp:df.gg.comに301リダイレクトする場合に、 http:gg.comにアクセスしたらhttp:df.gg.comに行くようにできたのですが、問題はカテゴリーページや個別記事ページの場合だと、旧ドメインのページからサブドメインの個別ページにどうしても転送されません。 どう設定すればいいでしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
> 「\」が.htaccessに入力すると「¥」になってしまうのですがそれでも問題ないのでしょうか? それはフォントの違いでしょうね。MSゴシック等だと円記号になります。文字としては同じです。フォント変更が可能なら、「プログラマー向けフォント」「コーディングに適したフォント」とかで検索してダウンロードしたフォントに切り替えると良いです。バックスラッシュ以外でも「数字のゼロ」と「英大文字のオー」、「数字のイチ」と「英子文字のエル」などが区別付きやすくなっています。 > gg.comのサイトのほうから301リダイレクトして、df.gg.comは途中から301リダイレクトの記述を消したのですが、やり方としてはそれで良かったのでしょうか? 「このファイルにこう書いてあったのをこう変えた」など、具体的に何をやったのか分からないので、なんとも言えません。 > あと、301リダイレクトしれからサイト内検索では末尾が「html」なのにカテゴリとか最新記事から記事をクリックすると末尾が「php」になってしまってるのですが、これはそのままでも問題ないでしょうか? これはプログラムの中味の話ですかね?貴方が良いと思えばのでは? 「phpとなっては困る」のであれば、プログラムをそのように変えれば良いし。 いま、ふと思ったのですが、 > [R,L]のままでも301リダイレクトで正常に引き継がれるのでしょうか? の「引き継ぎ」って、SEOの話ですかね?もしそうなら、SEOにはあまり関心無いので、考えたことないです。 No4のお礼の、 > これでやったのですが合ってますかね? コードとしては合ってます。 > と記述したのはどこの部分かといいますと、sirius2というホームページ作成ソフトの管理画面の.htaccessのところに記述しました。 どうなんでしょうね。sirius2というのはPC上のプログラムですよね。 サーバー上の.htaccessに書く必要があるので、管理画面の .htaccess に書いた物が、サーバー上の適切な位置の .htaccess にアップロードされるのなら良いと思います。 自分で手作業でアップロードする必要があって、それをやってないとかはないですか? .htaccess に This is a pen. とか出鱈目を書いてみて、500エラーになれば、その.htaccessは効いていますので手順は間違ってません。 500エラーにならなければ、サーバー上の適切な位置の.htaccessは更新されていません。 (.htaccessに文法エラーがあると500エラーになります) 前回、 > そもそもリダイレクト機能は使えますか? と聞いたのですが、その借りているサーバーで.htaccessに正しく書けばリダイレクトできるという機能があるかどうかは確認できていますか?レンタルサーバー機能一覧とかに書いてあるはず。 有料のレンタルサーバーだとまずOKだと思いますが、無料だといろいろ制限ついている可能性あります。
その他の回答 (4)
- notnot
- ベストアンサー率47% (4900/10358)
No1です。さっきの回答は補足を見る前に書きました。 まず最初に、毎回ブラウザキャッシュクリアーはしてますよね? RewriteEngine on RewriteCond %{HTTP_HOST} ^himanahito\.com$ [NC] RewriteRule ^ //ad.himanahito.com%{REQUEST_URI} [R=301,L] に変更して、ブラウザのアドレスバーに、 https://himanahito.com/risounoikikata/traburumakikomarenikui.html を入力したと言うことですよね? 「転送されない」というのは「アドレスバーが元のまま」という意味でしょうか? そもそもリダイレクト機能は使えますか? .htaccessに、 RewriteEngine on RewriteRule ^ https://www.google.com [R,L] の2行だけ書くと、何をアクセスしてもgoogleにリダイレクトされますか?
お礼
>>まず最初に、毎回ブラウザキャッシュクリアーはしてますよね? たぶんそれはできてたとおもいます。 数回、再起動を含め、キャッシュの削除もしました。 >>RewriteCond %{HTTP_HOST} ^himanahito\.com$ [NC] RewriteRule ^ //ad.himanahito.com%{REQUEST_URI} [R=301,L] >>に変更して、ブラウザのアドレスバーに、 https://himanahito.com/risounoikikata/traburumakikomarenikui.html >>を入力したと言うことですよね? ## EXPIRES CACHING ## RewriteEngine on RewriteCond %{HTTP_HOST} ^himanahito\.com$ [NC] RewriteRule ^ //ad.himanahito%{REQUEST_URI} [R=301,L] これでやったのですが合ってますかね? >>「転送されない」というのは「アドレスバーが元のまま」という意味でしょうか? そうです。 トップページのhttps://himanahito.com/だけ https://ad.himanahito.com/ に転送されるのですが、 最初はこれも転送されなくて、使ってるサーバー内の301リダイレクト設定をしたらトップページだけ転送されるようになりました。 で、## EXPIRES CACHING ## RewriteEngine on RewriteCond %{HTTP_HOST} ^himanahito\.com$ [NC] RewriteRule ^ //ad.himanahito%{REQUEST_URI} [R=301,L] と記述したのはどこの部分かといいますと、sirius2というホームページ作成ソフトの管理画面の.htaccessのところに記述しました。 やり方まちがってたんですかね?
補足
ちなみにアクセス解析を見ても、前のアドレスにしか、ほとんどアクセスきてないので個別記事の301リダイレクトは全くできてないことがわかります。
- notnot
- ベストアンサー率47% (4900/10358)
> 教えていただきありがとうございます。あ、書くの忘れてしまいましたが、httpsサイトです。httpsサイトも上記のままでOKでしょうか? はいOKです。回答に書いた物にはhttp/httpsの違いは関係ないです。 > [R,L]のままでも301リダイレクトで正常に引き継がれるのでしょうか? すいませんが、「引き継がれる」の意味が分かりません。 両者の違いとしては、 ・R=301 ⇒ リダイレクトする。「今後永久にリダイレクト先は変わらない」という意味なので、ブラウザに「gg.comは今後ずっとdf.gg.comだ」という情報がキャッシュされる。仮に.htaccessを修正してリダイレクト先をzz.gg.comに変更しても、ブラウザはキャッシュの情報を優先して(いちいちgg.comに問い合わせず)df.gg.comにリクエストを出す。 ・R または R=302 ⇒ リダイレクトする。ブラウザにリダイレクト先はキャッシュされないので、毎回サーバーgg.comにリダイレクト先を問い合わせに来る。 .htaccessのリダイレクト先修正は即反映 これ以外は同じです。 ということで、 案1:テスト中はRを使って、テスト完了でもう変更しないと決めたらR=301に修正する 案2:テスト中からR=301を使う。.htaccessのリライト部分を修正したら、ブラウザのキャッシュをクリアーしてからテストする のどっちでも自分が楽だと思う方をやれば良いです。どっちでもOK。 「毎回ブラウザキャッシュクリアーは面倒」は私の主観なので、 「あとでRをR=301に修正する方が、毎回キャッシュクリアーより面倒」と思うならば案2ですね。 ただし、テスト環境がなくて本番環境を直接いじる場合は、R=301だと自分以外のアクセスした人にも「ブラウザのキャッシュクリアーしてください」と依頼する必要性が出てくるかも知れませんね。 まあ、明示的にキャッシュクリアー操作をしなくても、キャッシュのリダイレクト情報はいずれ画像データとかに追い出されると思うので、R=301でも「今後永久」というわけでは無いです。
お礼
>>RewriteCond %{HTTP_HOST} ^gg\.com$ [NC] 上記なのですが、「\」が.htaccessに入力すると「¥」になってしまうのですがそれでも問題ないのでしょうか? いろいろ教えてくださりありがとうございます。 あと、途中からgg.comとdf.gg.comの2サイトを作って gg.comのサイトのほうから301リダイレクトして、df.gg.comは途中から301リダイレクトの記述を消したのですが、やり方としてはそれで良かったのでしょうか? もしこのまま301リダイレクトが上手くいかなければ、rel="canonical"などだけでも正規化って可能性でしょうか? あと、301リダイレクトしれからサイト内検索では末尾が「html」なのにカテゴリとか最新記事から記事をクリックすると末尾が「php」になってしまってるのですが、これはそのままでも問題ないでしょうか?
- t_ohta
- ベストアンサー率38% (5238/13705)
Webサーバの種類によって設定の仕方が変わります。 お使いのWebサーバの種類は何ですか。
お礼
>>Webサーバの種類によって設定の仕方が変わります。 お使いのWebサーバの種類は何ですか。 カラフルボックスというサーバーを利用しています。 レンタルサーバです。 回答ありがとうございます。
- notnot
- ベストアンサー率47% (4900/10358)
http://gg.com/aaa/bbb (aaaやbbbは任意)を、 http://df.gg.com/aaa/bbb にリダイレクトしたいと言うことですかね? .htaccessに書くのなら、 RewriteEngine on RewriteCond %{HTTP_HOST} ^gg\.com$ [NC] RewriteRule ^ //df.gg.com%{REQUEST_URI} [R=301,L] ただし、R=301と書くとここを修整する度にブラウザのキャッシュクリアーが必要なので、「今後絶対に変えない」と確定するまでは、[R,L]と書くと良いです。 .htaccessに書くのでなく、Apacheの設定ファイルに書ける場合は他にも方法がありますが、
お礼
教えていただきありがとうございます。 >>http://gg.com/aaa/bbb (aaaやbbbは任意)を、 >>http://df.gg.com/aaa/bbb にリダイレクトしたいと言うことですかね? まさにそのことです。そこがどうもできなかったんです。。 >>RewriteEngine on RewriteCond %{HTTP_HOST} ^gg\.com$ [NC] >>RewriteRule ^ //df.gg.com%{REQUEST_URI} [R=301,L] 教えていただきありがとうございます。あ、書くの忘れてしまいましたが、httpsサイトです。httpsサイトも上記のままでOKでしょうか? >>ただし、R=301と書くとここを修整する度にブラウザのキャッシュクリアーが必要なので、「今後絶対に変えない」と確定するまでは、>>[R,L]と書くと良いです。 [R,L]のままでも301リダイレクトで正常に引き継がれるのでしょうか?
補足
やってみたのですが上手くいかなかったです。 以下は301リダイレクトした私のブログ記事の1つですが、 https://himanahito.com/risounoikikata/traburumakikomarenikui.html が以下に転送されないんです。 https://ad.himanahito.com/risounoikikata/traburumakikomarenikui.html
お礼
\ ¥は同じで問題ないのですね。 >>これはプログラムの中味の話ですかね?貴方が良いと思えばのでは? >>「phpとなっては困る」のであれば、プログラムをそのように変えれば良いし。 PHPとHTMLだけども記事の内容が同じってSEO的に不利にならないか心配なんですよね。それともグーグルがどっちかが自動的に正規URLって感じで振り分けてくれるんですかね?