{"id":274,"date":"2012-07-17T09:12:00","date_gmt":"2012-07-17T14:12:00","guid":{"rendered":"http:\/\/www.dontpapanic.com\/blog\/?p=274"},"modified":"2013-01-31T09:12:50","modified_gmt":"2013-01-31T14:12:50","slug":"installing-sharepoint-2013-prerequisites-without-an-internet-connection-2","status":"publish","type":"post","link":"https:\/\/www.dontpapanic.com\/blog\/?p=274","title":{"rendered":"Installing SharePoint 2013 Prerequisites Without an Internet Connection"},"content":{"rendered":"<p>There are already several blog posts about how to install SharePoint 2013, so I won\u2019t duplicate them here.&#160; But all of these posts are written assuming that you SharePoint server can access the Internet.&#160; You need this to be able to automatically download the 10 additional prerequisites that need to be installed BEFORE you can install SharePoint 2013.&#160; But what if your SharePoint server is behind a firewall or in a disconnected Virtual machine?&#160; How can you get the prerequisites installed then?<\/p>\n<p>You could download them manually, copy them to the server and install them.&#160; but this presents several challenges.&#160; For example, the first pre-requisite is .Net Framework 4.5.&#160; Try using your search engine to find an official Microsoft site where you can download that.&#160; Once you do you are left with the question of whether to install the Beta or Release Candidate version.&#160; Once you\u2019ve done all that you still have to find and download the other nine prerequisites.&#160; But there is an easier way.<\/p>\n<p>In the past you could find Powershell scripts on the Internet that you could use to download all the SharePoint prerequisites to a subdirectory.&#160; In this post I\u2019ve taken one of those scripts and updated it with the right links for the SharePoint 2013 prerequisites.&#160; Then once the prerequisites are downloaded and copied to the SharePoint server I\u2019ve created a batch file that you can use to install all the prereqs using the SharePoint prerequisite installer.&#160; I\u2019ve also included a list of the prerequisites and where you can download them from in case you want to get them manually.<\/p>\n<h1>Downloading the Prerequisites (Powershell)<\/h1>\n<p>You can use the following Powershell script to download all the SharePoint 2013 prerequisites and put them in a subdirectory that you specify.&#160; <a href=\"http:\/\/dontpapanic.com\/download\/DownloadAllSP2013PreReqs.txt\"><font size=\"3\">Download Download-All_SP2013_PreReqs.ps1 script here<\/font><\/a>.<\/p>\n<div class=\"csharpcode\">\n<pre class=\"alt\"><span class=\"lnum\">   1:  <\/span>Import-<span class=\"kwrd\">Module<\/span> BitsTransfer<\/pre>\n<pre><span class=\"lnum\">   2:  <\/span>## Prompt <span class=\"kwrd\">for<\/span> the destination path<\/pre>\n<pre class=\"alt\"><span class=\"lnum\">   3:  <\/span>$DestPath = Read-Host -Prompt <span class=\"str\">&quot;- Enter the destination path for downloaded files&quot;<\/span><\/pre>\n<pre><span class=\"lnum\">   4:  <\/span>## Check that the path entered <span class=\"kwrd\">is<\/span> valid<\/pre>\n<pre class=\"alt\"><span class=\"lnum\">   5:  <\/span><span class=\"kwrd\">If<\/span> (Test-Path <span class=\"str\">&quot;$DestPath&quot;<\/span> -Verbose)<\/pre>\n<pre><span class=\"lnum\">   6:  <\/span>{<\/pre>\n<pre class=\"alt\"><span class=\"lnum\">   7:  <\/span>    ## <span class=\"kwrd\">If<\/span> destination path <span class=\"kwrd\">is<\/span> valid, create folder <span class=\"kwrd\">if<\/span> it doesn<span class=\"rem\">'t already exist<\/span><\/pre>\n<pre><span class=\"lnum\">   8:  <\/span>    $DestFolder = <span class=\"str\">&quot;$DestPath\\PrerequisiteInstallerFiles&quot;<\/span><\/pre>\n<pre class=\"alt\"><span class=\"lnum\">   9:  <\/span>    <span class=\"kwrd\">New<\/span>-Item -ItemType Directory $DestFolder -ErrorAction SilentlyContinue<\/pre>\n<pre><span class=\"lnum\">  10:  <\/span>}<\/pre>\n<pre class=\"alt\"><span class=\"lnum\">  11:  <\/span><span class=\"kwrd\">Else<\/span><\/pre>\n<pre><span class=\"lnum\">  12:  <\/span>{<\/pre>\n<pre class=\"alt\"><span class=\"lnum\">  13:  <\/span>    Write-Warning <span class=\"str\">&quot; - Destination path appears to be invalid.&quot;<\/span><\/pre>\n<pre><span class=\"lnum\">  14:  <\/span>    ## Pause<\/pre>\n<pre class=\"alt\"><span class=\"lnum\">  15:  <\/span>    Write-Host <span class=\"str\">&quot; - Please check the path, and try running the script again.&quot;<\/span><\/pre>\n<pre><span class=\"lnum\">  16:  <\/span>    Write-Host <span class=\"str\">&quot;- Press any key to exit...&quot;<\/span><\/pre>\n<pre class=\"alt\"><span class=\"lnum\">  17:  <\/span>    $null = $host.UI.RawUI.ReadKey(<span class=\"str\">&quot;NoEcho,IncludeKeyDown&quot;<\/span>)<\/pre>\n<pre><span class=\"lnum\">  18:  <\/span>    break<\/pre>\n<pre class=\"alt\"><span class=\"lnum\">  19:  <\/span>}<\/pre>\n<pre><span class=\"lnum\">  20:  <\/span>## We use the hard-coded URL below, so that we can extract the filename (<span class=\"kwrd\">and<\/span> use it <span class=\"kwrd\">to<\/span> <span class=\"kwrd\">get<\/span> destination filename $DestFileName)<\/pre>\n<pre class=\"alt\"><span class=\"lnum\">  21:  <\/span>## Note: These URLs are subject <span class=\"kwrd\">to<\/span> change at Microsoft<span class=\"rem\">'s discretion - check the permalink next to each if you have trouble downloading.<\/span><\/pre>\n<pre><span class=\"lnum\">  22:  <\/span>$UrlList = (<span class=\"str\">&quot;http:\/\/download.microsoft.com\/download\/b\/a\/4\/ba4a7e71-2906-4b2d-a0e1-80cf16844f5f\/dotnetfx45_full_x86_x64.exe&quot;<\/span>, # Microsoft .NET Framework 4.5<\/pre>\n<pre class=\"alt\"><span class=\"lnum\">  23:  <\/span>            <span class=\"str\">&quot;http:\/\/download.microsoft.com\/download\/5\/2\/B\/52B59966-3009-4F39-A99E-3732717BBE2A\/Windows6.1-KB2506143-x64.msu&quot;<\/span>, # Windows Management Framework 3.0 (CTP2)<\/pre>\n<pre><span class=\"lnum\">  24:  <\/span>            <span class=\"str\">&quot;http:\/\/download.microsoft.com\/download\/9\/1\/3\/9138773A-505D-43E2-AC08-9A77E1E0490B\/1033\/x64\/sqlncli.msi&quot;<\/span>, #Microsoft SQL Server 2008 r2 Native Client<\/pre>\n<pre class=\"alt\"><span class=\"lnum\">  25:  <\/span>            <span class=\"str\">&quot;http:\/\/download.microsoft.com\/download\/D\/7\/2\/D72FD747-69B6-40B7-875B-C2B40A6B2BDD\/Windows6.1-KB974405-x64.msu&quot;<\/span>, #Windows Identity Foundation (KB974405)<\/pre>\n<pre><span class=\"lnum\">  26:  <\/span>            <span class=\"str\">&quot;http:\/\/download.microsoft.com\/download\/E\/0\/0\/E0060D8F-2354-4871-9596-DC78538799CC\/Synchronization.msi&quot;<\/span>, # Microsoft Sync Framework Runtime v1.0 SP1 (x64) <\/pre>\n<pre class=\"alt\"><span class=\"lnum\">  27:  <\/span>            <span class=\"str\">&quot;http:\/\/download.microsoft.com\/download\/A\/6\/7\/A678AB47-496B-4907-B3D4-0A2D280A13C0\/WindowsServerAppFabricSetup_x64.exe&quot;<\/span>, #Windows Server AppFabric<\/pre>\n<pre><span class=\"lnum\">  28:  <\/span>            <span class=\"str\">&quot;http:\/\/download.microsoft.com\/download\/0\/1\/D\/01D06854-CA0C-46F1-ADBA-EBF86010DCC6\/r2\/MicrosoftIdentityExtensions-64.msi&quot;<\/span>, # Windows Identity Extensions<\/pre>\n<pre class=\"alt\"><span class=\"lnum\">  29:  <\/span>            <span class=\"str\">&quot;http:\/\/download.microsoft.com\/download\/9\/1\/D\/91DA8796-BE1D-46AF-8489-663AB7811517\/setup_msipc_x64.msi&quot;<\/span>, # Microsoft Information Protection <span class=\"kwrd\">and<\/span> Control Client<\/pre>\n<pre><span class=\"lnum\">  30:  <\/span>            <span class=\"str\">&quot;http:\/\/download.microsoft.com\/download\/8\/F\/9\/8F93DBBD-896B-4760-AC81-646F61363A6D\/WcfDataServices.exe&quot;<\/span>, # Microsoft WCF Data Services 5.0<\/pre>\n<pre class=\"alt\"><span class=\"lnum\">  31:  <\/span>            <span class=\"str\">&quot;http:\/\/download.microsoft.com\/download\/7\/B\/5\/7B51D8D1-20FD-4BF0-87C7-4714F5A1C313\/AppFabric1.1-RTM-KB2671763-x64-ENU.exe&quot;<\/span> # CU 1 <span class=\"kwrd\">for<\/span> AppFabric 1.1 (KB2671763)<\/pre>\n<pre><span class=\"lnum\">  32:  <\/span>            )<\/pre>\n<pre class=\"alt\"><span class=\"lnum\">  33:  <\/span>ForEach ($Url <span class=\"kwrd\">in<\/span> $UrlList)<\/pre>\n<pre><span class=\"lnum\">  34:  <\/span>{<\/pre>\n<pre class=\"alt\"><span class=\"lnum\">  35:  <\/span>    ## <span class=\"kwrd\">Get<\/span> the file name based <span class=\"kwrd\">on<\/span> the portion of the URL after the last slash<\/pre>\n<pre><span class=\"lnum\">  36:  <\/span>    $DestFileName = $Url.Split(<span class=\"rem\">'\/')[-1]<\/span><\/pre>\n<pre class=\"alt\"><span class=\"lnum\">  37:  <\/span>    <span class=\"kwrd\">Try<\/span><\/pre>\n<pre><span class=\"lnum\">  38:  <\/span>    {<\/pre>\n<pre class=\"alt\"><span class=\"lnum\">  39:  <\/span>        ## Check <span class=\"kwrd\">if<\/span> destination file already exists<\/pre>\n<pre><span class=\"lnum\">  40:  <\/span>        <span class=\"kwrd\">If<\/span> (!(Test-Path <span class=\"str\">&quot;$DestFolder\\$DestFileName&quot;<\/span>))<\/pre>\n<pre class=\"alt\"><span class=\"lnum\">  41:  <\/span>        {<\/pre>\n<pre><span class=\"lnum\">  42:  <\/span>            ## Begin download<\/pre>\n<pre class=\"alt\"><span class=\"lnum\">  43:  <\/span>            Start-BitsTransfer -Source $Url -Destination $DestFolder\\$DestFileName -DisplayName <span class=\"str\">&quot;Downloading `'$DestFileName`' to $DestFolder&quot;<\/span> -Priority High -Description <span class=\"str\">&quot;From $Url...&quot;<\/span> -ErrorVariable err<\/pre>\n<pre><span class=\"lnum\">  44:  <\/span>            <span class=\"kwrd\">If<\/span> ($err) {<span class=\"kwrd\">Throw<\/span> <span class=\"str\">&quot;&quot;<\/span>}<\/pre>\n<pre class=\"alt\"><span class=\"lnum\">  45:  <\/span>        }<\/pre>\n<pre><span class=\"lnum\">  46:  <\/span>        <span class=\"kwrd\">Else<\/span><\/pre>\n<pre class=\"alt\"><span class=\"lnum\">  47:  <\/span>        {<\/pre>\n<pre><span class=\"lnum\">  48:  <\/span>            Write-Host <span class=\"str\">&quot; - File $DestFileName already exists, skipping...&quot;<\/span><\/pre>\n<pre class=\"alt\"><span class=\"lnum\">  49:  <\/span>        }<\/pre>\n<pre><span class=\"lnum\">  50:  <\/span>    }<\/pre>\n<pre class=\"alt\"><span class=\"lnum\">  51:  <\/span>    <span class=\"kwrd\">Catch<\/span><\/pre>\n<pre><span class=\"lnum\">  52:  <\/span>    {<\/pre>\n<pre class=\"alt\"><span class=\"lnum\">  53:  <\/span>        Write-Warning <span class=\"str\">&quot; - An error occurred downloading `'$DestFileName`'&quot;<\/span><\/pre>\n<pre><span class=\"lnum\">  54:  <\/span>        break<\/pre>\n<pre class=\"alt\"><span class=\"lnum\">  55:  <\/span>    }<\/pre>\n<pre><span class=\"lnum\">  56:  <\/span>}<\/pre>\n<pre class=\"alt\"><span class=\"lnum\">  57:  <\/span>## View the downloaded files <span class=\"kwrd\">in<\/span> Windows Explorer<\/pre>\n<pre><span class=\"lnum\">  58:  <\/span>Invoke-Item $DestFolder<\/pre>\n<pre class=\"alt\"><span class=\"lnum\">  59:  <\/span>## Pause<\/pre>\n<pre><span class=\"lnum\">  60:  <\/span>Write-Host <span class=\"str\">&quot;- Downloads completed, press any key to exit...&quot;<\/span><\/pre>\n<pre class=\"alt\"><span class=\"lnum\">  61:  <\/span>$null = $host.UI.RawUI.ReadKey(<span class=\"str\">&quot;NoEcho,IncludeKeyDown&quot;<\/span>)<\/pre>\n<\/div>\n<style type=\"text\/css\">\n<p>.csharpcode, .csharpcode pre\n{\n\tfont-size: small;\n\tcolor: black;\n\tfont-family: consolas, \"Courier New\", courier, monospace;\n\tbackground-color: #ffffff;\n\t\/*white-space: pre;*\/\n}\n.csharpcode pre { margin: 0em; }\n.csharpcode .rem { color: #008000; }\n.csharpcode .kwrd { color: #0000ff; }\n.csharpcode .str { color: #006080; }\n.csharpcode .op { color: #0000c0; }\n.csharpcode .preproc { color: #cc6633; }\n.csharpcode .asp { background-color: #ffff00; }\n.csharpcode .html { color: #800000; }\n.csharpcode .attr { color: #ff0000; }\n.csharpcode .alt \n{\n\tbackground-color: #f4f4f4;\n\twidth: 100%;\n\tmargin: 0em;\n}\n.csharpcode .lnum { color: #606060; }<\/style>\n<h1>&#160;<\/h1>\n<h1>Downloading the Prerequisites (Manual Links)<\/h1>\n<p>In case you don\u2019t want to use Powershell, or just want to download one of the prereqs that you missed.&#160; Here are the direct download links for all the prereqs.&#160; <\/p>\n<ul>\n<li><a href=\"http:\/\/download.microsoft.com\/download\/b\/a\/4\/ba4a7e71-2906-4b2d-a0e1-80cf16844f5f\/dotnetfx45_full_x86_x64.exe\">.NET Framework 4.5<\/a> <\/li>\n<li><a href=\"http:\/\/download.microsoft.com\/download\/5\/2\/B\/52B59966-3009-4F39-A99E-3732717BBE2A\/Windows6.1-KB2506143-x64.msu\">Windows Management Framework 3.0 (CTP2)<\/a> \u2013 PowerShell 3.0 <\/li>\n<li><a href=\"http:\/\/download.microsoft.com\/download\/9\/1\/3\/9138773A-505D-43E2-AC08-9A77E1E0490B\/1033\/x64\/sqlncli.msi\">Microsoft SQL Server 2008 r2 Native Client<\/a> <\/li>\n<li><a href=\"http:\/\/download.microsoft.com\/download\/D\/7\/2\/D72FD747-69B6-40B7-875B-C2B40A6B2BDD\/Windows6.1-KB974405-x64.msu\">Windows Identity Foundation (KB974405)<\/a> <\/li>\n<li><a href=\"http:\/\/download.microsoft.com\/download\/E\/0\/0\/E0060D8F-2354-4871-9596-DC78538799CC\/Synchronization.msi\">Microsoft Sync Framework Runtime v1.0 SP1 (x64)<\/a> <\/li>\n<li><a href=\"http:\/\/download.microsoft.com\/download\/A\/6\/7\/A678AB47-496B-4907-B3D4-0A2D280A13C0\/WindowsServerAppFabricSetup_x64.exe\">Windows Server AppFabric<\/a> <\/li>\n<li><a href=\"http:\/\/download.microsoft.com\/download\/0\/1\/D\/01D06854-CA0C-46F1-ADBA-EBF86010DCC6\/r2\/MicrosoftIdentityExtensions-64.msi\">Windows Identity Extensions<\/a> <\/li>\n<li><a href=\"http:\/\/download.microsoft.com\/download\/9\/1\/D\/91DA8796-BE1D-46AF-8489-663AB7811517\/setup_msipc_x64.msi\">Microsoft Information Protection and Control Client<\/a> <\/li>\n<li><a href=\"http:\/\/download.microsoft.com\/download\/8\/F\/9\/8F93DBBD-896B-4760-AC81-646F61363A6D\/WcfDataServices.exe\">Microsoft WCF Data Services 5.0<\/a> <\/li>\n<li><a href=\"http:\/\/download.microsoft.com\/download\/7\/B\/5\/7B51D8D1-20FD-4BF0-87C7-4714F5A1C313\/AppFabric1.1-RTM-KB2671763-x64-ENU.exe\">CU Package 1 for Microsoft AppFabric 1.1 for Windows Server (KB2671763)<\/a><br \/>\n<h1>Installing from a local Subdirectory<\/h1>\n<p><font size=\"2\">Once you\u2019ve downloaded all the prerequisite files you will need to copy them to a subdirectory on the SharePoint server.&#160; Once the files are on the SharePoint server you can use the regular SharePoint 2013 prerequisiteinstaller.exe to install them.&#160; Running <strong>prerequisiteinstaller.exe \/?<\/strong> displays the following dialog which shows the switches you need to install the prerequisites from a local location. <\/font><\/p>\n<\/li>\n<li>\n<p><font size=\"2\"><a href=\"http:\/\/www.dontpapanic.com\/blog\/wp-content\/uploads\/2013\/01\/2013-prerequisites.jpg\"><img loading=\"lazy\" decoding=\"async\" title=\"2013 prerequisites\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px\" border=\"0\" alt=\"2013 prerequisites\" src=\"http:\/\/www.dontpapanic.com\/blog\/wp-content\/uploads\/2013\/01\/2013-prerequisites_thumb.jpg\" width=\"308\" height=\"484\" \/><\/a><\/font><\/p>\n<p><font size=\"2\">Once you know what the switches are you can use the following batch file to invoke the prerequisiteinstaller.exe and provide it with the local location for all the prereqs.&#160; (Note:&#160; the \u2018^\u2019 is a line continuation character in a windows batch file.&#160; If it gives you trouble just remove it and put everything on two lines.)&#160; <font color=\"#c0504d\"><strong>Note:&#160; You will need to substitute the path where you copied the prerequisite files in the first line. <font size=\"3\"><\/font><a href=\"http:\/\/dontpapanic.com\/download\/prereq2013.txt\"><font size=\"3\">Download PreReq2013.bat Batch File Here<\/font>.<\/a><font size=\"3\">&#160;<\/font><\/strong><\/font><\/font><\/p>\n<div class=\"csharpcode\">\n<pre class=\"alt\">set PreReqPath=<span class=\"str\">E:\\Install\\SharePoint\\PrerequisiteInstallerFiles<\/span><\/pre>\n<pre>PrerequisiteInstaller.exe \/SQLNCli:%PreReqPath%\\sqlncli.msi  ^<\/pre>\n<pre class=\"alt\">    \/PowerShell:%PreReqPath%\\Windows6.1-KB2506143-x64.msu&#160; ^<\/pre>\n<pre>    \/NETFX:%PreReqPath%\\dotNetFx45_Full_x86_x64.exe  ^<\/pre>\n<pre class=\"alt\">    \/IDFX:%PreReqPath%\\Windows6.1-KB974405-x64.msu&#160; ^<\/pre>\n<pre>    \/Sync:%PreReqPath%\\Synchronization.msi  ^<\/pre>\n<pre class=\"alt\">    \/AppFabric:%PreReqPath%\\WindowsServerAppFabricSetup_x64.exe&#160; ^<\/pre>\n<pre>    \/IDFX11:%PreReqPath%\\MicrosoftIdentityExtensions-64.msi  ^<\/pre>\n<pre class=\"alt\">    \/MSIPCClient:%PreReqPath%\\setup_msipc_x64.msi&#160; ^<\/pre>\n<pre>    \/WCFDataServices:%PreReqPath%\\WcfDataServices.exe  ^<\/pre>\n<pre class=\"alt\">    \/KB2671763:%PreReqPath%\\AppFabric1.1-RTM-KB2671763-x64-ENU.exe    <\/pre>\n<\/p><\/div>\n<style type=\"text\/css\">\n<p>.csharpcode, .csharpcode pre\n{\n\tfont-size: small;\n\tcolor: black;\n\tfont-family: consolas, \"Courier New\", courier, monospace;\n\tbackground-color: #ffffff;\n\t\/*white-space: pre;*\/\n}\n.csharpcode pre { margin: 0em; }\n.csharpcode .rem { color: #008000; }\n.csharpcode .kwrd { color: #0000ff; }\n.csharpcode .str { color: #006080; }\n.csharpcode .op { color: #0000c0; }\n.csharpcode .preproc { color: #cc6633; }\n.csharpcode .asp { background-color: #ffff00; }\n.csharpcode .html { color: #800000; }\n.csharpcode .attr { color: #ff0000; }\n.csharpcode .alt \n{\n\tbackground-color: #f4f4f4;\n\twidth: 100%;\n\tmargin: 0em;\n}\n.csharpcode .lnum { color: #606060; }<\/style>\n<p><font size=\"2\">&#160;<\/font><\/p>\n<p>Once the files are all on the server and the lines above are in a .bat file you can just run the batch file and wait for it to install all the pre-requisites.&#160; <\/li>\n<\/ul>\n<ul><font color=\"#c0504d\"><strong>Note: You will probably have to re-boot the server once during the install and again at the end before installing SharePoint itself.<\/strong><\/font><\/ul>\n<p><font size=\"2\">&#160;<\/font><\/p>\n","protected":false},"excerpt":{"rendered":"<p>There are already several blog posts about how to install SharePoint 2013, so I won\u2019t duplicate them here.&#160; But all of these posts are written assuming that you SharePoint server can access the Internet.&#160; You need this to be able to automatically download the 10 additional prerequisites that need to be installed BEFORE you can &hellip; <a href=\"https:\/\/www.dontpapanic.com\/blog\/?p=274\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Installing SharePoint 2013 Prerequisites Without an Internet Connection<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[59],"tags":[41,60],"class_list":["post-274","post","type-post","status-publish","format-standard","hentry","category-sharepoint-2013","tag-installation","tag-sharepoint_2013"],"_links":{"self":[{"href":"https:\/\/www.dontpapanic.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/274","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dontpapanic.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dontpapanic.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dontpapanic.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dontpapanic.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=274"}],"version-history":[{"count":2,"href":"https:\/\/www.dontpapanic.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/274\/revisions"}],"predecessor-version":[{"id":276,"href":"https:\/\/www.dontpapanic.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/274\/revisions\/276"}],"wp:attachment":[{"href":"https:\/\/www.dontpapanic.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=274"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dontpapanic.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=274"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dontpapanic.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=274"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}