<p>You'll need to create a listing template for the base <code>/projects</code> URL, and make that template render for that URL.</p>

<p>The easiest way is to just add a template called <code>/templates/projects/index.html</code>, in which case Craft will automatically render that template whenever a user hits <code>example.com/projects</code>.</p>

<p>Another way is to create a <a href="https://craftcms.com/docs/routing#dynamic-routes" rel="nofollow noreferrer">dynamic route</a>, and point it to whatever template you want rendered for the <code>/projects</code> URL.</p>

<p>Obviously, inside your listing template you'll need to pull the Structure entries manually, i.e. by doing something like this:</p>

<pre><code>{% for entry in craft.entries.section('projects') %}
    &lt;article&gt;
        &lt;h2&gt;&lt;a href="{{ entry.url }}"&gt;{{ entry.title }}&lt;/a&gt;&lt;/h2&gt;
        ...
    &lt;/article&gt;
{% endfor %}
</code></pre>

<p>Note that if you don't pass an <code>.order()</code> parameter to your <code>craft.entries</code> query, Craft will use the default order, which is the "manual" <code>structure</code> order for Structure sections.</p>

<p>Also note that if your Structure is multi-level, you'll probably want to use the <a href="https://craftcms.com/docs/templating/nav" rel="nofollow noreferrer"><code>{% nav %}</code></a> tag over the basic <code>{% for %}</code> loop:</p>

<pre><code>{% nav entry in craft.entries.section('projects') %}
    &lt;li&gt;
        &lt;a href="{{ entry.url }}"&gt;{{ entry.title }}&lt;/a&gt;
        {% ifchildren %}
            &lt;ul&gt;
                {% children %}
            &lt;/ul&gt;
        {% endifchildren %}
    &lt;/li&gt;
{% endnav %}
</code></pre>

CC BY-SA 3.0
2016-12-18T22:30:01.237Z
2016-12-19T06:55:30.150Z
2016-12-19T06:55:30.150Z
Mats Mikkel Rummelhoff
<p>I'm making a portfolio website, where the url's look like "projects/project-name".
There is also an overview page with all the projects that is under "projects" on itself.</p>

<p>I'm using a Structure for this, but I go to the 404 page when I'm just trying to go to "projects" without the slugs. </p>

<p>Is there a way of using a structure without a slug? </p>

CC BY-SA 4.0
2020-08-13T05:53:56.593Z
I am also interested in this question. I created a navigation with a structure. Now I want to get rid of this slugs. Because it will appear in the sitemap. And this pages are error pages without a template. Is there a way to create structure entries without a slug?
Slowwie
<structure><slug>
Can I use a structure without slugs?
# Can I use a structure without slugs?

(Asked by: username_0 on 2016-12-18)

I'm making a portfolio website, where the url's look like "projects/project-name".
There is also an overview page with all the projects that is under "projects" on itself.

I'm using a Structure for this, but I go to the 404 page when I'm just trying to go to "projects" without the slugs.

Is there a way of using a structure without a slug?

**Tags:** structure, slug
> **Comments:**
> **username_1**: I am also interested in this question. I created a navigation with a structure. Now I want to get rid of this slugs. Because it will appear in the sitemap. And this pages are error pages without a template. Is there a way to create structure entries without a slug?  

---

## 1 answers

### Answer by username_2 on 2016-12-18. Score: 2 | Accepted answer

You'll need to create a listing template for the base /projects URL, and make that template render for that URL.
The easiest way is to just add a template called /templates/projects/index.html, in which case Craft will automatically render that template whenever a user hits example.com/projects.
Another way is to create a dynamic route, and point it to whatever template you want rendered for the /projects URL.
Obviously, inside your listing template you'll need to pull the Structure entries manually, i.e. by doing something like this:
{% for entry in craft.entries.section('projects') %}
    
        {{ entry.title }}
        ...
    
{% endfor %}

Note that if you don't pass an .order() parameter to your craft.entries query, Craft will use the default order, which is the "manual" structure order for Structure sections.
Also note that if your Structure is multi-level, you'll probably want to use the {% nav %} tag over the basic {% for %} loop:
{% nav entry in craft.entries.section('projects') %}
    
        {{ entry.title }}
        {% ifchildren %}
            
                {% children %}
            
        {% endifchildren %}
    
{% endnav %}


---

