Apacheでページが移動したことを示すステータスコード301の設定方法 †ページが移動(引越し)してURLが変更したことを示すステータスコード301をhttpd.conf(apache.conf)に記す方法を以下に記します。 スポンサーリンク 関連記事 †ステータスコード301でサーチエンジン等にも対応する †ページが移動(引越し)しURLを変更した場合、サーチエンジンにも反映されるようにするには、 参考資料~ †ステータスコード301によるリダイレクトの記述方法 †以下の構文でステータスコード301でリダイレクトするようになります。
実際に設定してみる †CentOS6を使用して実際に設定してみます。 httpd.conf(apache.conf)を修正して実現してみる †CentOSでは、/etc/httpd/conf/httpd.confを直接修正しなくてもhttpd/conf.d/に設定ファイルを作成し保存すれば、作成したファイルを読み込んでくれるように/etc/httpd/conf/httpd.confに設定されています。(以下参照) # # Load config files from the config directory "/etc/httpd/conf.d". # Include conf.d/*.conf したがって、本記事ではhttpd/conf.d/にredirect301.confというファイル名で設定ファイルを作成し保存しました。 ファイル単位の転送 †
複数のページを指定する場合は以下のように下に追記すれば実現できます。 # cat /etc/httpd/conf.d/redirect301.conf Redirect permanent /old.html http://centos6/new.html Redirect permanent /old2.html http://centos6/new2.html ディレクトリ単位の転送 †以下のようなディレクトリ構成でテストしてみます。
.htaccessを使用して実現してみる †上記では、httpd.conf(apache.conf)を修正してステータスコード301のリダイレクトを実現していました。 設定に関しては上記のhttpd.conf修正と同じにしました。
telnetコマンドを使用してHTTPヘッダを調査した結果 †以下、telnetコマンドを使用してold.htmlにアクセスした時の出力です。 $ telnet centos6 80 Trying 192.168.56.6... Connected to centos6 (192.168.56.6). Escape character is '^]'. GET /old.html HTTP1.0 Connection closed by foreign host. [sudoutaka@mason ~]$ [sudoutaka@mason ~]$ telnet centos6 80 Trying 192.168.56.6... Connected to centos6 (192.168.56.6). Escape character is '^]'. GET /old.html HTTP/1.0 HTTP/1.1 301 Moved Permanently Date: Tue, 02 Apr 2013 04:19:44 GMT Server: Apache/2.2.15 (CentOS) Location: http://centos6/new.html Content-Length: 306 Connection: close Content-Type: text/html; charset=iso-8859-1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>301 Moved Permanently</title> </head><body> <h1>Moved Permanently</h1> <p>The document has moved <a href="http://centos6/new.html">here</a>.</p> <hr> <address>Apache/2.2.15 (CentOS) Server at localhost Port 80</address> </body></html> Connection closed by foreign host. $ 以上、ステータスコード301によるリダイレクトの設定方法記事でした。 スポンサーリンク |