国道228号（こくどう228ごう）は、北海道函館市から松前郡松前町を経由して、檜山郡江差町に至る一般国道である。

 概要 
起終点を同じくし、松前半島を横断する国道227号に対し、本路線は福島峠の前後を含む約27 kmの区間を除いて海岸線に沿うコースをとる。

 路線データ 
一般国道の路線を指定する政令に基づく起終点および重要な経過地は次のとおり。
 起点：函館市（函館市万代町9-1・12-12先、万代こ線橋交差点 = 国道5号交点、国道227号・国道280号起点）
 終点：北海道檜山郡江差町（檜山郡江差町字中歌町22-1先、旧中村家住宅裏手側 = 国道227号終点）
 重要な経過地：北海道上磯郡上磯町、同道亀田郡大野町、同道上磯郡木古内町、同道松前郡福島町
 総延長 : 189.1 km（重用延長を含む）
 重用延長 : 4.0 km
 未供用延長 : なし
 実延長 : 185.1 km
 現道 : 151.4 km
 旧道 : なし
 新道 : 33.7 km
 指定区間：全線

 歴史 
終点は指定当初から江差町であるが、政令による終点表記は、1953年（昭和28年）の二級国道指定時は江差郡江差町、1965年（昭和40年）の改正時は「桧山郡江差町」と表記されていた。1993年（平成5年）の改正で現在の表記となった。

 年表 
 1953年（昭和28年）5月18日 - 二級国道228号函館松前江差線（函館市 - 北海道松前郡松前町 - 北海道江差郡江差町）として指定施行。
 1965年（昭和40年）4月1日 - 道路法改正により一級・二級区分が廃止されて一般国道228号（函館市 - 北海道松前郡松前町 - 北海道桧山郡江差町）として指定施行。

 工事・路線変更に伴う年表 
参考資料
 国道228号道路台帳
（国道227号重複部分は省略）

上磯郡上磯町（現・北斗市）

 1985年（昭和60年） - 1986年（昭和61年）：上磯町久根別改良工事・上磯町上磯改良工事・上磯町七重浜道路改良および舗装その2工事（七重浜8丁目 - 中央町1丁目）
 拡幅を伴う工事。なお、この工事に伴って新久根別橋の架換が行われた。
 1998年（平成10年）2月 - 2001年（平成13年）1月：上磯町上磯改良工事・上磯町飯生改良工事（東浜2丁目 - 谷好4丁目）
 拡幅を伴う工事。なお、この工事に伴って有川橋の架換、上磯新橋の終点方向側（海側）の増設が行われた。
 2000年（平成12年） - 2001年（平成13年）：上磯町茂辺地災害防除工事（矢不来 - 茂辺地1丁目）
 道路の改良や、道路に面する法面の崩落防止に伴う法面工および覆道設置等。なお、この工事に伴って茂辺地トンネルが撤去された（後述）。
 2007年（平成19年）：北斗市谷好改良外一連工事（谷好4丁目 - 館野）
 道路の改良や、道路に面する法面の崩落防止に伴う法面工等。
 2008年（平成20年）3月 - 2011年（平成23年）3月 - 北斗市谷好東改良工事および舗装工事・北斗市富川改良工事（谷吉4丁目 - 富川）
 拡幅を伴う工事。なお、この工事に伴って函館江差自動車道・北斗富川IC取付道路への右折車線が新設された。
 2012年（平成24年）3月30日：北斗市茂辺地舗装外一連工事（茂辺地1丁目）
 北海道道29号上磯厚沢部線改良および間接接続する北海道道1167号北斗茂辺地インター線・函館江差自動車道北斗茂辺地IC新設に伴って、右折車線設置のための拡幅が行われた。
 2019年（令和元年）5月 - 事業中：災害復旧工事（富川 - 館野）
 5月14日、上記区間中の海岸に面した擁壁部分において、路肩洗掘による道路損傷が発生したための復旧工事。
その他、1970年（昭和45年） - 1973年（昭和48年）にかけて、上磯町（現・北斗市）全域において、主に狭隘道路の拡幅2車線化と歩道設置を伴う道路改良工事が行われている。

檜山郡上ノ国町
 1966年（昭和41年） - 1968年（昭和43年）：道路改良工事（字石崎）
 1970年（昭和45年） - 1972年（昭和47年）：道路改良工事（字寅の沢 - 原歌）
 1970年（昭和45年） - 1974年（昭和48年）：道路改良工事（字大安在 - 大崎）
 1972年（昭和47年） - 1974年（昭和49年）：道路改良工事（字小安在 - 大安在）
 1972年（昭和47年） - 1974年（昭和49年）：道路改良工事（字北村 - 内郷）
 後述の江差町椴川 - 中歌町（終点）間道路改良工事と共に行われ、海側に新道が作られた。旧道はその後「上ノ国町道北村内郷線」となり、江差町内の同じ旧道部分である「江差町道陣屋椴川線」と接続している。また、現在も旧道部分（町道）が函館バスのバス路線として使われている。
 1973年（昭和48年）12月 - 1976年（昭和51年）：道路改良工事（字勝山 - 字上ノ国）
 1973年（昭和48年） - 1977年（昭和52年）：道路改良工事（字館野 - 汐吹）
 1976年（昭和51年） - 1977年（昭和52年）：石崎橋歩道橋下部外一連工事（字石崎）
 車道のみだった石崎橋に歩道部が追加された。
 1976年（昭和51年） - 1977年（昭和52年）：道路改良工事（字大留）
 1978年（昭和53年） - 1981年（昭和56年）：道路改良工事（字館野）
 1978年（昭和53年） - 1980年（昭和55年）：道路改良工事（字小砂子）
 1979年（昭和54年） - 1980年（昭和55年）：ドアサ橋下部外一連工事（字小砂子）
 この工事でドアサ橋が新設された。
 1979年（昭和54年） - 1980年（昭和55年）：入込橋下部外一連工事（字館野）
 この工事で入込橋が新設された。
 1979年（昭和54年） - 1980年（昭和55年）：境澗橋下部外一連工事（字館野）
 この工事で境澗橋が新設された。
 1979年（昭和54年） - 1980年（昭和55年）：初神大橋下部外一連工事（字館野）
 この工事で初神大橋が新設された。
 1982年（昭和57年） - 1984年（昭和59年）：道路改良工事（松前町神山〈現・原口〉 - 上ノ国町字小砂子）
 1986年（昭和61年）12月：小砂子トンネル工事（字小砂子）
 上記2つの工事に伴って新道となった。旧道は町に移管されて小砂子の集落と漁港に至る道となっている。また、旧道は現在も引き続き函館バスのバス路線となっている。
 1990年（平成2年） - 1991年（平成3年）11月：道路改良工事（字木の子 - 小安在）
 この工事によって山側に新道が作られた。
 1985年（昭和60年）11月 - 1991年（平成3年）11月：道路改良工事（字扇石）
 この工事により、山側の新道（木の子 - 小安在間）と海岸側の従来の道路をつなぐ道路が作られ、一時国道として使用されていた。下記（汐吹 - 扇石間）の新道完成後は町に移管されている。
 1991年（平成3年）10月 - 11月：道路改良工事（字汐吹 - 扇石）
 この工事によって山側に新道が作られた。
 1996年（平成8年）3月：道路改良工事（字上ノ国 - 大留）
 この工事における線形の改良に伴って、天の川橋の架換が行われた。
 1997年（平成9年）11月：道路改良工事（字大留）
 2007年（平成19年） - 2010年（平成22年）3月26日
 上ノ国町：災害防除外一連工事（字大安在 - 大崎）
 2008年（平成20年）3月：災害防除外一連工事（字石崎および羽根差）
 2009年（平成21年）3月：歩道設置外一連工事（字大崎）
 2016年（平成28年）10月31日 - 2019年（令和元年）10月11日：交差点改良工事（字大留）
 北海道道5号江差木古内線および上ノ国町道との交差部をラウンドアバウト化する工事
 2016年（平成28年）10月31日：区域決定
 2019年（令和元年）10月11日：供用開始

檜山郡江差町
 1971年（昭和46年） - 1974年（昭和49年）：道路改良工事（字椴川 - 中歌町〈終点〉）
 前述の上ノ国町北村 - 内郷間、および接続する国道227号の道路改良工事と共に行われ、海側に新道が作られた。旧道はその後、椴川 - 陣屋町間で「江差町道陣屋椴川線」になり、海岸町 - 茂尻町間及び津花町の一部区間も町に移管され、津花町 - 中歌町（終点）間は「北海道道5号江差木古内線」となった後に「いにしえ街道」として町に移管された。「江差町道陣屋椴川線」は前述の旧道部「上ノ国町道北村内郷線」と接続していて、現在も同線の椴川 - 柏町間旧道部分（町道）が函館バスのバス路線として使われている。
 1996年（平成8年）11月 - 12月：津花町交差点改良工事（字津花町）
 この工事により、交差点に接続するカーブ部の線形が改良された。

 福山街道 
宿場令制国郡現在の自治体特記事項都道府県市区町村 奥州街道の三厩宿方面へ至る松前宿蝦夷地渡島国津軽郡北海道松前郡松前町箱館宿亀田郡函館市札幌本道が分岐箱館奉行所

 路線状況 

 通称 
 松前国道
 福山街道（松前街道）
 日本海追分ソーランライン
 にしん街道（提唱中/日本海側の沿岸町）

 重複区間 
 国道227号・国道280号（函館市万代町・万代跨線橋（起点）- 北斗市七重浜7丁目）
 国道280号（北斗市七重浜7丁目 - 松前郡福島町日向）

 道路施設 

 トンネル 
 福島トンネル (382 m)
 白神トンネル (281 m)
 赤石トンネル (420 m)
 立岩トンネル (321.2 m)
 小砂子トンネル (1,080 m)
かつては北斗市茂辺地に茂辺地トンネル (95 m)があったが幅員6 mと狭く、老朽化も進んでいたため平成12年に撤去された。

 橋梁 
 知内橋
 茂草大橋
 市の渡橋
 矢上橋
 石崎橋 竣工1966年
 白神橋
 松前橋 竣工1976年
 津澗内橋 竣工1989年
 小砂子橋
 天の川橋 竣工（現橋）1997年

 道の駅 
 渡島総合振興局
 しりうち（上磯郡知内町）
 横綱の里ふくしま（松前郡福島町）
 北前船 松前（松前郡松前町）
 檜山振興局
 上ノ国もんじゅ（檜山郡上ノ国町）

 通行規制 
 北斗市矢不来 - 茂辺地間2.3 kmは、連続雨量110 mmの雨や異常気象時は通行止

 地理 

 通過する自治体 
 北海道
 渡島総合振興局
 函館市 - 北斗市 - 上磯郡木古内町 - 上磯郡知内町 - 松前郡福島町 - 松前郡松前町
 檜山振興局
 檜山郡上ノ国町 - 檜山郡江差町

 交差する道路 
渡島総合振興局
 函館市
 国道5号・北海道道571号五稜郭公園線：万代町（万代跨線橋起点）
（国道227号との重複区間は省略）
 北斗市
 国道227号：七重浜7丁目
 北海道道756号大野上磯線：東浜1丁目
 北海道道96号上磯峠下線：中央2丁目
 函館江差自動車道北斗中央ICに間接接続
 北海道道530号上磯停車場線 : 飯生2丁目（上磯駅前交点）
 函館江差自動車道北斗富川IC：富川2丁目
 北海道道29号上磯厚沢部線：茂辺地1丁目
 北海道道1167号北斗茂辺地インター線・函館江差自動車道北斗茂辺地ICに間接接続
 上磯郡木古内町
 函館江差自動車道木古内IC：大平
 北海道道5号江差木古内線：本町
 北海道道383号木古内停車場線 : 新道
 上磯郡知内町
 北海道道698号湯の里渡島知内停車場線：重内
 北海道道531号小谷石渡島知内停車場線：重内
 北海道道698号湯の里渡島知内停車場線：湯ノ里
 松前郡福島町
 北海道道812号館町福島線：千軒
 北海道道532号岩部渡島福島停車場線：三岳
 北海道道532号岩部渡島福島停車場線：福島（福島町福島交点）
 国道280号：日向（福島港付近：海上国道として分岐）
 北海道道636号渡島吉岡停車場線：吉岡
 松前郡松前町
 北海道道607号石崎松前線：朝日
 北海道道435号松前港線：福山
 北海道道380号松前停車場線：博多
檜山振興局
 檜山郡上ノ国町
 北海道道607号石崎松前線：石崎
 北海道道5号江差木古内線：大留
 檜山郡江差町
 北海道道215号江差停車場線：姥神町
 国道227号：中歌町（終点）
 北海道道5号江差木古内線起点と重複

 峠 
 渡島総合振興局
 福島峠（松前郡福島町）
 かつては松前郡福島町吉岡 - 松前郡松前町白神間に吉岡峠があったが、ルート変更により旧道化