2015年11月20日金曜日

URL最後のスラッシュとは

URL最後のスラッシュがない

こんにちは山田です。
雑誌とかテレビを見ているときに気になってURLをアクセスしてみると
あれ、NotFound… ないじゃんということが、、、あるかもしれませんね。

さて、
お客さんに印刷して渡したURLに最後スラッシュがついていなかったということになっておりました。
実際にURLを開いてみると NotFound…
その時の対応の話です。

正:http://sample.com/contents/0001
誤:http://sample.com/contents/0001/

一般的な人からするとなくてもあっても一緒なんじゃないかと思われがちな箇所だと思います。
(僕もチラシ屋さんだったらあまり気にしなそう)

豆知識として
そもそもURLの最後のスラッシュには「トレイニングスラッシュ」という名前があるようです。

というわけで、
誤っているURLを正しいURLへ301リダイレクトさせてみました。

開発環境:ASP.NET2.0
IIS:ver8.5

web.config
<system.webServer>
 ~
 <rewrite>
   <rule name="URLの最後にスラッシュをつけてる" stopProcessing="true">
     <match url="^contents/([0-9]{7})$" />
     <action type="Redirect" url="/contents/{R:1}/" redirectType="Permanent" appendQueryString="true"  />
   </rule>
 </rewrite>
</system.webServer>

属性
stopProcessing:このルールを適用した場合、そこでルールの処理を終了するかどうかを指定する
        trueであれば、これ以降のルールは適用しない
        falseであれば、さらに別のルールで指定した別のURLへリダイレクトされる
       (属性を省略したらfalseになります)
redirectType:このリダイレクトがどういった意味かをレスポンスコードで返すことが出来ます
       (省略):301  永続的
       Permanent:301 永続的
       Found:302    検出
       SeeOther:303   その他
       Temporary:307  一時的
appendQueryString:置換時に、現在の URL のクエリ文字列を保持するかどうかを指定する
               trueであれば、クエリ文字列を保持する(つまり、元の URL のクエリ文字列が置換された URL に追加されます)
          falseであれば、クエリ文字列を保持しない         
          属性を省略したら既定で TRUE と見なされます。

Related Posts:

  • 404.1、404.2という状態コードとは?こんにちは山田です。  Webサイトの運用や開発者なら誰でも、 「404 - ファイルが見つかりません」や 「401 - 権限がありません」 などのエラー メッセージを見たことがあると思います。 この時、特定のHTTP状態コードが出たときに、 自分で作成したエラー画面を指定してあげるこ… Read More
  • URL最後のスラッシュとはURL最後のスラッシュがない こんにちは山田です。 雑誌とかテレビを見ているときに気になってURLをアクセスしてみると あれ、NotFound… ないじゃんということが、、、あるかもしれませんね。 さて、 お客さんに印刷して渡したURLに最後スラッシュがついていなかったということになっており… Read More
  • ASP.NETでのURLリライトの流れ こんにちは山田です。 長年の疑問のURLリライトについてわかってきたので その覚書です。  開発環境:ASP.NET2.0 開発言語:C# IIS:6.1 ■URLリライトの別名 URLリライト=URL書き換え 日本語だとURL書き換えとなります。 ■そもそもURLリライトは必… Read More
  • IISのログの見方こんにちはグリーンスムージ≠青汁ということを知った山田です。 本日は IISのアクセスログの見方を知ったのでまとめました。 どういう時に必要なログかはまだわかっていないのですが、 その入り口として 各属性の内容を調べてみました。 ■アクセスログの場所 初期設定では C:\inetpub\log… Read More
  • ページのリダイレクト方法 web.configページのリダイレクト方法 こんにちは山田です。 リダイレクトについてまとめました。(action type="Rewrite"でリライトも設定できます。) 開発環境:ASP.NET 使用言語:C# リダイレクトの書き方ですが いくつか方法があるようなのですが、 今回はWeb.configに記述… Read More

0 コメント:

コメントを投稿