Welcome to ExpressionEngine! The first thing to understand is that EE has no concept of "regions" - it completely separates your content from your templates. The only content which appears at any given URL (which essentially is the same as your templates - templates in EE are like routes or controllers) is what you explicitly define inside your templates.
So, having said that, there are a few ways you could accomplish what you're after.
Use a channel
You could setup a channel, and you could even call it "Blocks". You could then give it as many fields as you like - content, maybe an image, whatever might be useful for you for each "block".
Then, in your EE template - presumably inside of a snippet or an embedded template, which you'd be using throughout other templates - you'd write some conditional code:
{if segment_1 == 'about-us'}
{exp:channel:entries channel="block" entry_id="32" disable="member_data|pagination|categories"}
<div class="block about-us-block">
<h3>{title}</h3>
{block_content}
</div>
{/exp:channel:entries}
{/if}
(This assumes that the entry_id
of the "About Us" block was 32
.)
The problem with this approach is that if you have a number of blocks on your page (in a sidebar or whatever), this is very resource intensive (running a channel:entries
tag several times).
Global Variables
This approach also lets you manage your "block" content inside of the control panel, but depending on how you approach it, gives you less flexibility. Global variables are always loaded, so you can use them anywhere in your templates with no performance hit.
If you use EE's global variables, you are limited somewhat, as each is just an empty text area where you dump text and/or HTML. But if you upgrade to something like Low Variables, you can create variables much like you create custom channel fields, and get much more sophisticated.
So if you dumped the entire HTML contents of your block inside of a global variable called gv_about_us_block
, you could do:
{if segment_1 == 'about-us'}
{gv_about_us_block}
{/if}
Or if you broke your block up into parts (say, inside of a Low Variables group):
{if segment_1 == 'about-us'}
<div class="block about-us-block">
<h3>{lv_about_us_block_title}</h3>
{lv_about_us_block_content}
</div>
{/if}
Snippets
Snippets are a more advanced form of global variables, in that they can contain EE module/plugin tags as well. They are also managed inside the control panel (though many use add-ons such as Snippet Sync to store them in the filesystem instead). You could actually replicate or combine the above two approaches with snippets if you wanted - use a channel entry and put all that code in a snippet (which you then call inside your template conditional), or just dump your entire "block" content into a snippet and use it exactly as you would the first example above under Global Variables.
Add-ons
There is an add-on called Widgets, which I have no experience with, and which appears not to have had too much development activity as of late, but may well work for you and get the job done. Its concept is similar to WordPress' widgets (but of course, since EE is a blank slate with no predefined regions of any sort, the widgets need to be added to your templates manually).
Hope that gives you some ideas on how to approach this!