LinuxMagic.org

オープンソースのサポートサイトを目指します。

Web

301 redirect

サイト引っ越し、リニューアルにはHTTP 301 REDIRECT
301 redirectって何?
サイトの引っ越しの際にサーチエンジンが今までキャッシュしていた情報が使えなくなる
場合がありますよね。全く同じドメインで同じサイト構造ならほとんど気にする必要はない
けど、引っ越しと構造があきらかに変わる場合は気をつけないとサーチエンジンにキャッシュ
されている情報が全く使えなくなる。また、引っ越しの狭間でサーチエンジンに誤解される
ケースもあります。同じサイトなのに2つあるとか。このなるとペナルティになってしまう。

そこで”301 REDIRECT”が役に立つ。
これを使うのには一番簡単な方法は.htaccessというファィルを使うことです。これにより
過去にあったパスやファイルが無くても、現在の仕様にあわせて転送のコーディネイトが
できる。

.htaccess ファイルとは
Apacheでは認証処理をフォルダ単位で行う場合によく使いますよね。あのファイルです。
実際にはこのファイルは認証だけではなく、フォルダやサイト毎の属性を変える機能が
あります。今回はこの中でリダイレクトする機能を使います。

How to make “301 Redirect”
1. エディターで.htaccessをオープンします。

2. 既存で既にそのファイルがある場合は適切な位置に記述する必要があります。

3. 次のように301の後に既存パスと新規パスを書きます。

状況は引っ越しの具合を見て引っ越しもとで設置するのか、引っ越し先で設置する
場合でパスが変わってきますが、既存パスはアクセスしてきた人が打ち込んだパス
ですのでそれをどこに飛ばすかが次の新規パスになります。 

redirect 301 /old/old.htm http://www.your.com/new.htm

4. 設定は書き換えるあるいは、転送するファイル単位、フォルダ単位で記述を
一行づつ加えていってください。

5.できたらセーブしてテストを行ってください。

telnetでテストする際、レスポンスコードで301が変えればOKです。

$ telnet localhost 80
Trying 127.0.0.1…
Connected to localhost.localdomain (127.0.0.1).
Escape character is ‘^]’.
HEAD /301.html HTTP/1.0

HTTP/1.1 301 Moved Permanently
Date: Sun, 2 Aug 2009 07:16:02 GMT
Server: Apache/1.3.26 (Unix) PHP/5.0.1
Location: http://anotherhost/301.html
Connection: close
Content-Type: text/html; charset=utf-8

Connection closed by foreign host.

SEO対策

WEB製作関連、WEBサーバ構築の情報提供

GoogleがSEOの検索エンジン最適化スターターガイド公開してたのね!
最近仕事に没頭しすぎて調べていませんでしたがGoogleがSEO最適化についてガイドライン
だしてたのね。気づいてなかった。ありゃりゃ。

http://googlewebmastercentral-ja.blogspot.com/2009/06/google.html

最近胡散臭いSEO業者が増えて、苦情の話をよく聞きますが、改めてガイドラインなど読んで
きちんと知識をつけないとね。

それはとりあえず、おいて。
GoogleにはSEOに繋がるWEBの管理ツールが色々あります。知ってる方も多いと思いますが
一応紹介しておきます。

Google に URL を追加
Googleセントラル(Web master toolがある)
Google analystic
Google Adsense
google websaiet optimizer
Google Insights for Search

Adsenseは直接的ではないですが、間接的にはSEOに繋がるかもしれません。

Apacheのログの規制

Apacheのログの規制
ウェブサーバのログは放っておくとトンでもない容量になるから余計なログは獲りたくない。
これを制御する設定をメモしておく。

$ vi httpd.conf ⇒CustomLogのあたりに追記・修正を行う。

各種動画、画像へのアクセスログを除外する。
SetEnvIfNoCase Request_URI “\.(jpg|mpg|mpeg|jpeg|(rm|avi|mov|aif|aiff|png|gif|swf)$” no_image CustomLog logs/access_log combined env=!no_image

ローカルアクセスのログを除外する。
SetEnvIfNoCase REMOTE_ADDR “^(127\.0\.0\.1|10\.\.\.|192\.168\.\.*)$” no_local
CustomLog logs/access_log combined env=!no_local

怪しいrobot からのアクセスログを除外する設定
BrowserMatchNoCase (nabot|dloader|digext|openbot|archiver|crawler|spider|scooter|zyborg) bad_bot deny from env=bad_bot

ワーム(Worm) からのアクセスログを除外する設定
SetEnvIf Request_URI “^/(mem_bin|_mem_bin|vti_bin|_vti_bin|c|d|msadc|MSADC|scripts|default\.ida|NULL\.IDA|cmd\.exe|root\.exe)” worm deny from env=worm
※上記は1行です。繋がっています。

DocumentRoot変更でエラー

ApacheでDocumentrootを変えるとエラーが発生。
SE LINUXがenableの状態でApacheのドキュメントルートを変更するとエラーがでるんだよね。
ちまたのチップスではSE LINUXを停止するテクニックが出ていますが、これはどうなんでしょう?
正しい処方箋とは思えませんね。

SE LINUXで運用すると Apacheの場合、セキュリティ上の都合でディレクトリの変更が多きな問題
になるため、制限を受けています。

例えば、バーチャルホストを作るときなど、ドキュメントルートはドメイン毎に変えたいもの。
CGIのパスやAliasなんかもそうでしょう。

SE LINUXがONだとApache起動時に「DocumentRoot must be a directory」なんてエラーがでてしまう。

これはSE LINUXではサーバ設定する際にドキュメントルートにSE LINUXのラベルをつけないと
だめなので生じる問題。

例えばDocumentRootが /var/www/html から /var/content/homeに変えたいなら
$ chcon   system_u:object_r:httpd_sys_content_t    /var/content/home

CGI の場合もやはりラベルのつけ方を気をつけないと問題がでます。

$ chcon    system_u:object_r;httpd_sys_script_rw_t     test.cgi

こんな感じ。

この作業の後にApacheを起動すれば問題なく立ち上がるでしょう。

このようにこのような作業はApacheだけではなく他のサーバでも同様の似たような作業が必要です。

IEの様々なバージョン検証

WEB制作でブラウザーの検証するならこれ
ブラウザー毎に表示が異なる問題ってよくありますよね。
それならこれがお勧めです。

IE TESTER

対応しているIEのバージョンが広いので便利ですね。

私のブログ

以前書いていたブログはまた、そのまま復帰します。たまには読んでください。

Linuxと関係ないかもよ日記

お役立ちLinux Links

Archives

RSSフィード配信

Articles RSS Feed