.htaccess で 301リダイレクト Mac mini G4 自宅サーバー
今回、自宅サーバーで運用していた WordPressをさくらのVPSへ引越し(移行)して新ドメインでの運用となりましたが、せっかく3年近く続けた旧URLでの検索結果を活用するため
自宅サーバー(Apple Mac mini G4 & Mac OS X Server 10.4)に .htaccess を用いて301リダイレクトをかけ
新URLへ自動転送する仕組みをWEBを漁りながら作成してみました!
.htaccessを使って301リダイレクトで自動転送!
自宅サーバーはMac OS X Server 10.4 と結構古いOSなのと純粋なMac OS ではなくServer専用OSだったのでWEB検索で見つかる情報を比較したり混ぜたり引っ掻いたり(ちょっと嘘ですw)
大変だったので個人的な備忘録です!
.htaccess 設定
from Mac G4 mini server (Mac OSX Server 10.4)
<Apache設定>
まずはリダイレクトの要、rewrite_module がキチンと読み込まれているか?確認します。Server OSなのでサーバー管理からGUIで設定できるのですが、今回はターミナルから直接変更してみます。
/etc/httpd/ にある httpd.conf をvimで編集。
ちなみに通常のMac OS だと /etc/apache2/httpd.conf ってなったりするんですかね?
1 2 |
LoadModule rewrite_module AddModule mod_rewrite.c |
上記内容の記載があったので rewrite 自体は読み込んでいる模様です。仮に行頭に#が付いてコメントアウトしてたら #を外して読込みを有効にします。
次に
1 2 3 4 |
<Directory "/"> Options FollowSymLinks AllowOverride None </Directory> |
という項目があるので AllowOverride None を AllowOverride All に書き換えます。
1 2 3 4 |
<Directory "/"> Options FollowSymLinks AllowOverride All </Directory> |
これで指定のディレクトリ内で.htaccess による情報の書換えが有効になります。
ここまでは良かったものの、上記設定を変更しても一向に .htaccess さんが有効になりません(涙)途方にくれつつwebをやみくもに検索。
するとバーチャルホストの設定に辿り着きました。
ageha自身はバーチャルホストを使用していないつもりでしたがname server関係の設定をした記憶があったので、いつの間にか設定がされていた模様です(汗)
<VirtualHost設定>
/etc/httpd/sites/ にてバーチャルホストの設定ファイルを発見しました。agehaの環境ではファイルネーム:0000_192.168.xx.x_80_www.catstail.ddo.jp.conf となっていましたので、このファイルをvimで修正します。
修正する場所は上記 Apache の httpd.conf と一緒で
1 2 |
</IfModule> AllowOverride None |
の None を All に書換え後保存。これでようやく .htaccess さんが使える状態に
キタ━━━ヽ(∀゚ )人(゚∀゚)人( ゚∀)人(∀゚ )人(゚∀゚)人( ゚∀)ノ━━━!!!
なったのですが、肝心の .htacces に記載する内容がいまいちで .htaccessを設置した途端 500 server error を返してきます(汗)
.htaccess を取り除くと server error は消えるので問題は .htaccess の記述と言う事にまりました。
webで検索して色々な記述方法を試しましたが一向に使えず諦めていた矢先に下記参考サイトにたどり着きなんとか .htaccess の記述内容を生成できました。
.htaccess rewrite 参考URL
https://htaccess.cman.jp/explain/redirect.html
必要項目を入力して生成された内容は下記の通りです。
1 2 3 4 5 6 |
<Files ~ "^\.ht"> deny from all </Files> # Redirect Redirect permanent / http://xxx.yyy.zzz/ |
上記が記載された .htaccess さんを目的のディレクトリに設置したら無事に301リダイレクトが動いたようで自動転送されました(・∀・)
要するに
1 |
(旧URL)http://aaa.bbb.ccc/abc/?p=xxx にアクセスがあった場合 |
1 |
ドメイン以下の /abc/?p=xxx を保持しつつ |
1 |
(新ドメイン)http://xxx.yyy.zzz に /abc/?p=xxx を付け足して |
1 |
http://xxx.yyy.zzz/abc/?p=xxx |
といった感じでリダイレクト(転送)してくれます。
これでGoogleさんの検索結果にひっかかる古いドメインの記事を踏んでくれた方を超?自然な感じで新しいドメインの同じ記事へ導いてくれます。
おまけ
ちなみにagehaの環境では httpd.conf に下記の記載があったので 外部から .htaccess のファイル自体に直接アクセスが出来ないようになってます。
1 2 3 4 5 |
<Files ~ "^\.([Hh][Tt]|[Dd][Ss]_[Ss])> Order allow,deny Deny from all Satisfy All </Files> |
一応、セキュリティの為にご確認を
40代からのプログラミング、目指せ40代おっさん甘グラマー!
スポンサーリンク