ついにできた〜っ!xdomain無料レンタルサーバーで特定のディレクトリだけアクセスしない.htaccessの書き方

xdomainの無料レンタルサーバーからコアサーバーへの引っ越しをしました。

はじめてサーバーを移転させたのでわからないことだらけでしたが、
サーバー移転のときに、是非しておきたいのが301リダイレクトですよね。

googleさんも301リダイレクトを推奨しているとか。
(301リダイレクトがなんなのかは、検索すればいっぱい出てくるので割愛)

やりたかったのは、

すべての旧サーバーへのアクセスをすべて301リダイレクトさせるのではなく、
特定のディレクトリだけは301リダイレクトさせないこと

だったのですが、
その.htaccessの書き方がなかなかわからなくて。

でもついにできましたので、それを公開します。

記事中アイコン矢印つき

スポンサードリンク

最終的に書いた.htaccessの記述

急いでいる人のために、最終的にぼくの環境でOKだった書き方を出しておきます。
以下です。

16行目はまんまではなく、googleのサイト確認時に使うhtmlファイルのURLに変更する必要があります。

記事中アイコン

xdomainの無料レンタルサーバーでやってみた

ぼくの環境でできただけの可能性があるので、
今回のぼくの環境を。

といっても、難しいことはわからなくて、

xdomainの無料レンタルサーバーを使っていました

というくらいしかお伝えできません。
(phpのバージョンとか本当はいろいろあるのでしょうが、よくわからないので)

xdomainは管理画面から.htaccessファイルを変更できるので、
それを書き換えてみたわけです。

記事中アイコン

旧サーバーのwordpress管理画面にアクセスしたい

やりたかったのは、

旧サーバーに作ったwordpressの管理画面だけ
301リダイレクトしないようにすること

です。
記事ページとか、他のものは301リダイレクトされた方がいいんですけど、
管理画面のURLもリダイレクトされると、旧サーバーのwordpressが
いじれなくなってしまうので、除外したかったんです。

記事中アイコン

301リダイレクトのよくある方法

wordpressプラグインを使う方法と.htaccessを使う方法がありますね。

プラグインだとRedirectionとかSimple 301 Redirectionとかが有名で、
よく紹介されていますね。

ぼくもRedirection使って301リダイレクトさせていました。
最初は、管理画面を除外する設定が効いていたんですけど、
いつの間にか効かなくなってしまって。

ほかのプラグインもうまくいかなかったので.htaccessを使ってみることに。

スポンサードリンク

記事中アイコン

.htaccessでつまづいたところ

.htaccessを変更したときに、つまづいたところです。
今思えば、このつまづいたところが、今回のポイントでもありました。

①301リダイレクトできるようにする
②適切な場所に追記する
③管理画面のURLを除外する
④google search consoleのことも考えておく

1つずつ振り返りますが、その前に.htaccessの記述法をかじっておくと理解しやすいです。

.htaccessのルールについては下記サイトの説明が一番わかりやすかったです。

記事中アイコン

①301リダイレクトできるようにする

まず、「.htaccessで301リダイレクトさせたい」と検索すると、
だいたい以下な感じのコードが発見できます。

↑こんな感じで書くと、www.old.comにアクセスが合った場合、www.new.comのサイトに301リダイレクトされるようになります。

$1と書くと、個別記事がそれぞれ301リダイレクトされたりします。
これは調べるとすぐ出てきます。

②適切な場所に追記する

最初のつまづきはここ。

上記の.htaccessを制御するコードをどこに書くといいのか。

「.htaccessファイルに追記します」と書かれていたりするんですけど、
追記する場所がわからなくて、
xdomainで言うと # BEGIN WordPressの後に書いていてました。

これ、ダメみたいです。

正解は、

<IfModule mod_rewrite.c>

</IfModule>

を前後につけて、追記する。でした。

だから、コピペするにしても、

こんな状態になっていないと、動かない。
(もしくは、元のコードの中に書くでもいいのかも。)

知っている人には当たり前なのかもしれませんが、
最初まったく気づいてませんでした。

③管理画面のURLを除外する

コードを書く位置がわかったところで、管理画面のURLだけ除外する書き方です。

いろいろ調べて見つけた、それっぽいのが以下の書き方。

wordpressの管理画面の/wp-admin/ディレクトリを除外しています。
さらにcssやjs、画像も除外するようにしたもの。

でも、ぼくの環境ではうまくいきませんでした。
その後見つけたのが、以下のQ&A。

xdomainのwordpressの管理画面て、たしかに「wp-admin」でも「wp-login.php」でも
ログイン画面にアクセスできるようになっています。

wp-adminにアクセスするとwp-login.phpに転送されていたりするのかもしれません。

で、除外ルールに両方入れつつ、かつ、先ほどのcssやjsの除外ルールも生かして作ったのが、これ。

さらにそこに、URL変更をgoogleに知らせるためのコードを1文追加します。

④google search consoleのことも考えておく

google search consoleに登録しているサイトアドレスをサイト評価を維持したまま変更するのも、
またコツが必要で大変でした。

こちらの記事を参考にさせてもらいつつ、
googleに登録済みのサイトアドレスを変更させました。

そのとき.htaccessに書いたアクセス除外ルールが以下。

googlexxx.htmlのころはgoogle search consoleでのサイト確認に使うhtmlファイルを
アップロードしたファイル名が入ります)

以上の、①〜④を組み合わせてできたのが冒頭の.htaccessファイルの記述です。

調べて、組み合わせて、できあがりました

いろいろやって、自分が希望する通りに動くようになった.htaccessです。

が、専門的な知識があるわけでないので、参考にする場合はどうぞ自己責任で。
.htaccessは下手にいじると管理画面が表示されなくなってしまったりするようなので、
変更前の状態をコピーしておいてくださいね。

そんなこんなを、きょうも話半分で効いていただけたら幸いです。

スポンサードリンク

この記事が気に入ったら
いいね!しよう

Twitter で

PAGE TOP