2015年11月9日月曜日

HttpResponse.Redirect メソッド (String)とは

こんにちは山田です。
エアコンと床暖のランニングコストはどっちがお得なんだろうと
最近気になっています。

季節ネタはさておき今回は、使用していたリダイレクトメソッドを
調べてみたのでその備忘録になります。

開発環境:ASP.NET 2.0

■HttpResponse.Redirect メソッド (String)とは

ASP.NETで画面遷移行う時Response.Redirect(string)を使います。
具体的には、クライアントに現在の処理を終了させて指定したURL(stringのこと)に遷移させることができます。

try-catch文を記すと常に例外が起こる仕様になっているようで
その時は第二引数にfalseを指定させて、Response.Endを呼ばせなくすることができるそうです。

調べたら似たようなメソッドで HttpServerUtility.Transferメソッドというものがありました。

■HttpServerUtility.Transferメソッドとの違い
このメソッドも指定したページへと処理を移すという点ではRedirectメソッドと同じなのですが、
動作の中身が大きく違うようです。

大きく違う点は
Redirectメソッドの場合は、ユーザーからの見た目上では、ポストバックが一度だけのように見えるが
 実はリクエストとレスポンスがそれぞれが2回ずつ起きているのです。
 一度目のレスポンスで、ポストした情報が消えてしまうので、ポストバックをさせたい場合はこの方法を使うことができません。
一方、Transferメソッドの場合は、ページが書き換わったあとページ遷移はサーバ内部で行われるため。
 遷移前にページで生成したオブジェクトが、メモリ上に残っているので遷移先のページからアクセスすることができます。

ページをまたいでポストバックできるってことですね。便利そうです。








2015年11月6日金曜日

301リダイレクトの書き方

こんばんはSです!

リダイレクトには恒久的な転送の301リダイレクトと一時的な302リダイレクトがありますが、
(おそらく)皆さんがよく使うと思われるResponse.Redirectは302リダイレクトです。

しかし、今回は301リダイレクトを行いたかったので
そのような書き方を探しました。

下記の2つが該当のコードです。

▼Framework 4.0以上のコード
Response.RedirectPermanent(url.Replace("元のURL", "リダイレクト後のURL"));


▼Framework 2.0にも対応
Response.StatusCode = 301;
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location", url.Replace("元のURL", "リダイレクト後のURL"));
Response.End();


 

IISのログの見方

こんにちはグリーンスムージ≠青汁ということを知った山田です。
本日は
IISのアクセスログの見方を知ったのでまとめました。
どういう時に必要なログかはまだわかっていないのですが、
その入り口として 各属性の内容を調べてみました。

■アクセスログの場所

初期設定では
C:\inetpub\logs\Logfiles
フォルダ名
・Webサイトの場合::”W3SVC” + サイトID(数字)
 ※サイトIDはIISマネージャで確認できます

■アクセスログの各項目
date time サーバでリクエストを受信した日時(UTC形式:日本+9時間)
s-ip    サーバーのIPアドレス
cs-method  使われたHTTPメソッド
cs-uri-stem アクセスしてきたドメイン以下のアドレス
cs-uri-query ターゲットのクエリ情報
c-ip     クライアントのIPアドレス
cs(User-Agent) ユーザーエージェント
cs(Cookie)  クッキー 
cs(Referer) 参照元
cs-host  ホスト
sc-status プロトコルの状態
time-taken 所要時間



2015年11月5日木曜日

.htaccessとは

こんにちわ山田です。
SEOについて調べものをしていたら、「.htaccessを編集すればよい」という記述がよく見られました。
IISを使っているので関係はないところでもあるのですが、知らなかったので調べてみました。

■.htaccessとは
.htaccess(ドットエイチティーアクセス)とはApacheeを用いたWebサーバにおいて、
ディレクトリ単位で設定を行える設定ファイルです。

これは、IISでいうとWeb.configファイルに該当するようです。

■httpd.confとは?
もう一つ似たものがありhttpd.confというものがあります。
本来サーバの設定はサーバー管理者しか変更できないhttpd.confに記述するのですが、
.htaccessを利用することで、アプリ開発者がディレクトリ単位でサーバーの挙動を制御することができます。

■.htaccessはなにができるの?
www index.htmlありなし設定 URLの正規化として、検索エンジンに対してリライトをかけることができます。
404ページ設定        404エラーの時に動作させたいものを書くことができます。
アクセス制限        IPアドレスで拒否許可をつけたりできます。
リダイレクト        旧URLから新URLへと自動遷移させたいときに使います。
デフォルトページ設定    index.html以外をスタートページに設定することができます。
ベーシック認証       IDとパスワードで簡易的に認証をつけることができます。

過去に、秘密のページを作りたくて、Webサイトにベーシック認証をつけたことを思い出しました。懐かしい、、、。    

 

2015年11月4日水曜日

canonicalとは?

こんにちわ山田です。

一段と肌寒くなってきましたね。
衣替えをして、冬に備えたいと思います。

さて、本日ですが、
canonicalタグについて調べてみました。

■canonicalとは?
一言でまとめると。異なるURLを一つのものとして認識させるタグ。URLの正規化の設定です。

もし、この設定を入れていないと
たとえば
wwwあり、wwwなしでアクセスのあったページ
index.htmlあり、なしのページ

がそれぞれ別のwebページとしてと認識され
重複コンテンツとして判断されてしまいます。

■canonicalタグはどうやっていれるの?
<link rel="canonical" href="http://○○.com/"/>

実は入れる方法は簡単で、上のURLを該当のページにすべて入れるだけなのです。
もし、wwwありのindexなしに統一したい場合は
<link rel="canonical" href="http://www.example.com/"/>
とすればOKです。

サイトTOPは簡単そうですが、各ディレクトリも同様の設定を入れなくてはいけないので、
動的ページの場合は少し大変そうですね。