[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"sanity-NkWRA0OTS87AtLiE8dXpZi2JTAEf7p3n5RJWkgHBXNA":3,"sanity-cR71-_DvZLhIMzmCAFq8gxK1oYN3GpJNKD2JwkRMwZc":291},{"data":4,"sourceMap":-1},{"latestPodcast":5,"latestReleases":14,"post":39,"recent":266},[6],{"_id":7,"publishedAt":8,"slug":9,"sponsored":12,"title":13},"d81860b7-7b72-4ba5-8ad5-3b77fd9a8e9b","2026-07-14T07:40:00.000Z",{"_type":10,"current":11},"slug","your-ai-is-only-as-responsible-as-you-are",null,"Your AI is only as responsible as you are",[15,21,27,33],{"_id":16,"publishedAt":17,"slug":18,"title":20},"eb5b66eb-9410-4329-83bb-22bbff39402a","2026-04-28T13:00:00.000Z",{"_type":10,"current":19},"turn-scattered-knowledge-into-trusted-intelligence","Turning scattered knowledge into trusted intelligence: Stack Internal 2026.3",{"_id":22,"publishedAt":23,"slug":24,"title":26},"369c2401-b62e-4a37-8ff8-bf603023ecad","2026-03-02T15:03:00.988Z",{"_type":10,"current":25},"what-s-new-at-stack-overflow-march-2026","What’s new at Stack Overflow: March 2026",{"_id":28,"publishedAt":29,"slug":30,"title":32},"5e9053a4-07ea-447c-91ea-29e0b6228537","2026-02-02T15:00:00.000Z",{"_type":10,"current":31},"what-s-new-at-stack-overflow-february-2026","What’s new at Stack Overflow: February 2026",{"_id":34,"publishedAt":35,"slug":36,"title":38},"a1b538eb-a8a6-46d0-80a1-ac70ec9bb935","2026-01-05T10:00:00.000-05:00",{"_type":10,"current":37},"what-s-new-at-stack-overflow-january-2026","What’s new at Stack Overflow: January 2026",{"_createdAt":40,"_id":41,"_rev":42,"_type":43,"_updatedAt":44,"author":45,"body":59,"comments":242,"dateUrl":243,"excerpt":244,"legacyBody":245,"product":12,"publishedAt":248,"slug":249,"sponsored":12,"tags":251,"title":265,"visible":242},"2023-05-25T09:36:57Z","wp-post-3174","dgl3SCUzppW3U2LvCoRupY","blogPost","2023-07-13T14:54:15Z",[46],{"_createdAt":47,"_id":48,"_rev":49,"_type":50,"_updatedAt":51,"avatar":52,"employee":54,"name":55,"role":56,"slug":57},"2023-05-23T16:27:18Z","wp-author-114","07ZbrKPSUrjrV4wQ6fam8u","blogAuthor","2023-08-29T11:49:01Z",{"_type":53},"image","former","Jeff Atwood","Co-founder",{"current":58},"jeffatwood",[60,83,96,112,141,150,158,177,185,193,197,205,208,216,224,227],{"_key":61,"_type":62,"children":63,"markDefs":78,"style":82},"22bd877f587a","block",[64,69,74],{"_key":65,"_type":66,"marks":67,"text":68},"22bd877f587a0","span",[],"Where do you stand on ",{"_key":70,"_type":66,"marks":71,"text":73},"22bd877f587a1",[72],"20ef70395c99","The Great Dub-Dub-Dub Debate",{"_key":75,"_type":66,"marks":76,"text":77},"22bd877f587a2",[],"?",[79],{"_key":72,"_type":80,"href":81,"reference":12},"link","http:\u002F\u002Fwww.codinghorror.com\u002Fblog\u002Farchives\u002F001109.html","normal",{"_key":84,"_type":62,"children":85,"markDefs":95,"style":82},"cbfe868c11f8",[86,90],{"_key":87,"_type":66,"marks":88,"text":89},"cbfe868c11f80",[],"Some people become very religious about whether URLs should have a www. prefix or not. Me, I'm a bit more sanguine: ",{"_key":91,"_type":66,"marks":92,"text":94},"cbfe868c11f81",[93],"strong","I think you need to choose your allegiance early in the lifecycle of your website, and stick to it.",[],{"_key":97,"_type":62,"children":98,"markDefs":111,"style":82},"3e68ef3734f2",[99,103,107],{"_key":100,"_type":66,"marks":101,"text":102},"3e68ef3734f20",[],"So, for stackoverflow, we're going with plain old ",{"_key":104,"_type":66,"marks":105,"text":106},"3e68ef3734f21",[93],"stackoverflow.com",{"_key":108,"_type":66,"marks":109,"text":110},"3e68ef3734f22",[],", and dropping the www prefix.",[],{"_key":113,"_type":62,"children":114,"markDefs":137,"style":82},"f905808bd3de",[115,119,124,128,133],{"_key":116,"_type":66,"marks":117,"text":118},"f905808bd3de0",[],"The only downside of this choice that I can see is that setting cookies for a prefixless domain sets them across all subdomains, as noted by ",{"_key":120,"_type":66,"marks":121,"text":123},"f905808bd3de1",[122],"61898056379c","Stecki",{"_key":125,"_type":66,"marks":126,"text":127},"f905808bd3de2",[]," in the comments of ",{"_key":129,"_type":66,"marks":130,"text":132},"f905808bd3de3",[131],"172b570ceb17","my original blog post on this topic",{"_key":134,"_type":66,"marks":135,"text":136},"f905808bd3de4",[],":",[138,140],{"_key":122,"_type":80,"href":139,"reference":12},"http:\u002F\u002Fblog.stecki.de\u002F",{"_key":131,"_type":80,"href":81,"reference":12},{"_key":142,"_type":62,"children":143,"markDefs":148,"style":149},"0017a9695198",[144],{"_key":145,"_type":66,"marks":146,"text":147},"0017a96951980",[],"using a non-www-version of a webpage will lead to setting cookies for the whole domain, thus making cookieless domains (for example for fast cdn-like access of static resources like css, js and images) impossible.",[],"blockquote",{"_key":151,"_type":62,"children":152,"markDefs":157,"style":82},"fb863754771e",[153],{"_key":154,"_type":66,"marks":155,"text":156},"fb863754771e0",[],"That's a bit of a downer, but our use of cookies should be quite minimal, so I'm OK with that tradeoff.",[],{"_key":159,"_type":62,"children":160,"markDefs":174,"style":82},"582123f4327f",[161,165,170],{"_key":162,"_type":66,"marks":163,"text":164},"582123f4327f0",[],"Now that we've chosen, we need to enforce that choice through URL rewriting. We're using IIS7 with the brand spanking new (and wildly overdue) ",{"_key":166,"_type":66,"marks":167,"text":169},"582123f4327f1",[168],"db80f18652ff","official Microsoft URL rewriting add-on",{"_key":171,"_type":66,"marks":172,"text":173},"582123f4327f2",[],".",[175],{"_key":168,"_type":80,"href":176,"reference":12},"http:\u002F\u002Flearn.iis.net\u002Fpage.aspx\u002F460\u002Fusing-url-rewrite-module\u002F",{"_key":178,"_type":62,"children":179,"markDefs":184,"style":82},"68d766e64005",[180],{"_key":181,"_type":66,"marks":182,"text":183},"68d766e640050",[],"The new rewrite GUI makes it fairly easy to set this stuff up; there's even an import option where you can pull in existing Apache format .htaccess rewrite rules, which is nice. It'd be nicer still if we could just use the .htaccess format everyone already knows, but oh well.",[],{"_key":186,"_type":62,"children":187,"markDefs":192,"style":82},"49c71065bc19",[188],{"_key":189,"_type":66,"marks":190,"text":191},"49c71065bc190",[],"Here's the IIS7 rule to remove the WWW prefix from all incoming URLs. Cut and paste this XML fragment into your web.config file under \u002F \u002F",[],{"_key":194,"_type":195,"code":196,"markDefs":12},"61506640cfb4","code","\u003Crule name=\"Remove WWW prefix\" >\n\u003Cmatch url=\"(.*)\" ignoreCase=\"true\" \u002F>\n\u003Cconditions>\n\u003Cadd input=\"{HTTP_HOST}\" pattern=\"^www.domain.com\" \u002F>\n\u003C\u002Fconditions>\n\u003Caction type=\"Redirect\" url=\"http:\u002F\u002Fdomain.com\u002F{R:1}\" \n    redirectType=\"Permanent\" \u002F>\n\u003C\u002Frule>",{"_key":198,"_type":62,"children":199,"markDefs":204,"style":82},"3fc5ad394995",[200],{"_key":201,"_type":66,"marks":202,"text":203},"3fc5ad3949950",[],"Or, if you prefer to use the www prefix, you can do that too:",[],{"_key":206,"_type":195,"code":207,"markDefs":12},"4a47ce554a89","\u003Crule name=\"Add WWW prefix\" >\n\u003Cmatch url=\"(.*)\" ignoreCase=\"true\" \u002F>\n\u003Cconditions>\n\u003Cadd input=\"{HTTP_HOST}\" pattern=\"^domain.com\" \u002F>\n\u003C\u002Fconditions>\n\u003Caction type=\"Redirect\" url=\"http:\u002F\u002Fwww.domain.com\u002F{R:1}\"\n    redirectType=\"Permanent\" \u002F>\n\u003C\u002Frule>",{"_key":209,"_type":62,"children":210,"markDefs":215,"style":82},"2f64a40c9fcc",[211],{"_key":212,"_type":66,"marks":213,"text":214},"2f64a40c9fcc0",[],"You can also use the GUI to build these rewrite rules; same thing either way.",[],{"_key":217,"_type":62,"children":218,"markDefs":223,"style":82},"3823c7f8200b",[219],{"_key":220,"_type":66,"marks":221,"text":222},"3823c7f8200b0",[],"For reference, here's what the enforce-www rule looks like in .htaccess form.",[],{"_key":225,"_type":195,"code":226,"markDefs":12},"b2dd0b038006","# Add WWW prefix\nRewriteCond %HTTP_HOST ^domain.com [I]\nRewriteRule ^\u002F(.*) http:\u002F\u002Fwww.domain.com\u002F$1 [RP]",{"_key":228,"_type":62,"children":229,"markDefs":239,"style":82},"5bc83c26eece",[230,234],{"_key":231,"_type":66,"marks":232,"text":233},"5bc83c26eece0",[],"Have I mentioned ",{"_key":235,"_type":66,"marks":236,"text":238},"5bc83c26eece1",[237],"911b809fb07c","how much I love XML?",[240],{"_key":237,"_type":80,"href":241,"reference":12},"http:\u002F\u002Fwww.codinghorror.com\u002Fblog\u002Farchives\u002F001114.html",true,"2008\u002F06\u002F14","",{"code":246,"language":247},"\u003Cp>Where do you stand on \u003Ca href=\"http:\u002F\u002Fwww.codinghorror.com\u002Fblog\u002Farchives\u002F001109.html\">The Great Dub-Dub-Dub Debate\u003C\u002Fa>?\u003C\u002Fp>\n\u003Cp>Some people become very religious about whether URLs should have a www. prefix or not. Me, I'm a bit more sanguine: \u003Cstrong>I think you need to choose your allegiance early in the lifecycle of your website, and stick to it.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>So, for stackoverflow, we're going with plain old \u003Cstrong>stackoverflow.com\u003C\u002Fstrong>, and dropping the www prefix.\u003C\u002Fp>\n\u003Cp>The only downside of this choice that I can see is that setting cookies for a prefixless domain sets them across all subdomains, as noted by \u003Ca href=\"http:\u002F\u002Fblog.stecki.de\u002F\">Stecki\u003C\u002Fa> in the comments of \u003Ca href=\"http:\u002F\u002Fwww.codinghorror.com\u002Fblog\u002Farchives\u002F001109.html\">my original blog post on this topic\u003C\u002Fa>:\u003C\u002Fp>\n\u003Cblockquote>\nusing a non-www-version of a webpage will lead to setting cookies for the whole domain, thus making cookieless domains (for example for fast cdn-like access of static resources like css, js and images) impossible.\n\u003C\u002Fblockquote>\n\u003Cp>That's a bit of a downer, but our use of cookies should be quite minimal, so I'm OK with that tradeoff.\u003C\u002Fp>\n\u003Cp>Now that we've chosen, we need to enforce that choice through URL rewriting. We're using IIS7 with the brand spanking new (and wildly overdue) \u003Ca href=\"http:\u002F\u002Flearn.iis.net\u002Fpage.aspx\u002F460\u002Fusing-url-rewrite-module\u002F\">official Microsoft URL rewriting add-on\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>The new rewrite GUI makes it fairly easy to set this stuff up; there's even an import option where you can pull in existing Apache format .htaccess rewrite rules, which is nice. It'd be nicer still if we could just use the .htaccess format everyone already knows, but oh well.\u003C\u002Fp>\n\u003Cp>Here's the IIS7 rule to remove the WWW prefix from all incoming URLs. Cut and paste this XML fragment into your web.config file under \u003Csystem.webserver> \u002F \u003Crewrite> \u002F \u003Crules>\u003C\u002Frules>\u003C\u002Frewrite>\u003C\u002Fsystem.webserver>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>&lt;rule name=\"Remove WWW prefix\" &gt;\n&lt;match url=\"(.*)\" ignoreCase=\"true\" \u002F&gt;\n&lt;conditions&gt;\n&lt;add input=\"{HTTP_HOST}\" pattern=\"^www.domain.com\" \u002F&gt;\n&lt;\u002Fconditions&gt;\n&lt;action type=\"Redirect\" url=\"http:\u002F\u002Fdomain.com\u002F{R:1}\" \n    redirectType=\"Permanent\" \u002F&gt;\n&lt;\u002Frule&gt;\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Or, if you prefer to use the www prefix, you can do that too:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>&lt;rule name=\"Add WWW prefix\" &gt;\n&lt;match url=\"(.*)\" ignoreCase=\"true\" \u002F&gt;\n&lt;conditions&gt;\n&lt;add input=\"{HTTP_HOST}\" pattern=\"^domain.com\" \u002F&gt;\n&lt;\u002Fconditions&gt;\n&lt;action type=\"Redirect\" url=\"http:\u002F\u002Fwww.domain.com\u002F{R:1}\"\n    redirectType=\"Permanent\" \u002F&gt;\n&lt;\u002Frule&gt;\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>You can also use the GUI to build these rewrite rules; same thing either way.\u003C\u002Fp>\n\u003Cp>For reference, here's what the enforce-www rule looks like in .htaccess form.\u003C\u002Fp>\n\u003Cpre>\u003Ccode># Add WWW prefix\nRewriteCond %HTTP_HOST ^domain.com [I]\nRewriteRule ^\u002F(.*) http:\u002F\u002Fwww.domain.com\u002F$1 [RP]\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Have I mentioned \u003Ca href=\"http:\u002F\u002Fwww.codinghorror.com\u002Fblog\u002Farchives\u002F001114.html\">how much I love XML?\u003C\u002Fa>\u003C\u002Fp>","html","2008-06-14T12:00:00.000Z",{"current":250},"dropping-the-www-prefix",[252,260],{"_createdAt":253,"_id":254,"_rev":255,"_type":256,"_updatedAt":253,"slug":257,"title":259},"2023-05-23T16:43:21Z","wp-tagcat-company","9HpbCsT2tq0xwozQfkc4ih","blogTag",{"current":258},"company","Company",{"_createdAt":253,"_id":261,"_rev":255,"_type":256,"_updatedAt":253,"slug":262,"title":264},"wp-tagcat-design",{"current":263},"design","Design","Dropping the WWW Prefix",[267,273,279,285],{"_id":268,"publishedAt":269,"slug":270,"sponsored":12,"title":272},"76c9771b-34e6-4d98-8641-ecefc711f0ef","2026-07-06T15:23:34.559Z",{"_type":10,"current":271},"when-the-sensor-starts-thinking-snortml-agentic-ai-and-the-evolving-architecture-of-intrusion-detection","When the sensor starts thinking: SnortML, agentic AI, and the evolving architecture of intrusion detection",{"_id":274,"publishedAt":275,"slug":276,"sponsored":12,"title":278},"28e560af-f0aa-4d46-bd90-f435ad604aa7","2026-06-26T14:00:27.102Z",{"_type":10,"current":277},"paging-charity-how-can-engineering-leaders-avoid-becoming-bond-villains","Paging Charity! How can engineering leaders avoid becoming Bond villains?",{"_id":280,"publishedAt":281,"slug":282,"sponsored":12,"title":284},"4b22c2a3-3779-4966-93eb-5230391dbdce","2026-06-23T14:08:58.595Z",{"_type":10,"current":283},"your-ai-shipped-a-backend-that-boots-that-is-the-whole-problem","Your AI shipped a backend that boots. That is the whole problem.",{"_id":286,"publishedAt":287,"slug":288,"sponsored":12,"title":290},"5cf362e1-fe7b-45af-b69c-914731c6a052","2026-06-23T14:00:00.000Z",{"_type":10,"current":289},"the-2026-developer-survey-is-now-open-for-human-developers-only","The 2026 Developer Survey is now open (for human developers only)!",{"data":292,"sourceMap":-1},{"count":293,"lastTimestamp":12},0]