URLs

Pages (Templates) are organized in Template Groups. To access a Template within a Template Group you'll use this URL structure:

http://wwww.yoursite.com/index.php/template_group/template/

For example: If you want to access the "comments" Template within the "weblog" Template Group you'll use this:

http://www.yoursite.com/index.php/weblog/comments/

The Concept

Our goal was to make the URLs produced by ExpressionEngine search-engine friendly by default. In fact, there is almost no difference between URLs produced with the rewrite engine on or off. In order to accomplish this, the use of query strings was eliminated from the URLs.

Most dynamic systems use query strings. That is, URLs that look like this:

http://www.somesite.com/index.php?id=2&page=1

Notice the question mark and ampersand? Those are query strings. These enable dynamic systems like ExpressionEngine to fetch and display specific information. Query strings, however, are disliked by search engines, which prefer not to catalog dynamic information. For that reason, we've eliminated them completely, preferring to make our URLs segment driven.

URLs in ExpressionEngine look like this:

http://www.yoursite.com/index.php/weblog/archives/

Template groups and templates can be named anything you want. Your site index page can be renamed too (see Renaming Main Site File), enabling you to create your own URL structure.

For example: You can rename your "index" page to "blog", then rename the default Template Group from "weblog" to "joe". Your weblog would then be at:

http://www.yoursite.com/blog/joe/

Query Strings

Some web servers — typically Windows-based servers — still have difficulty with the default ExpressionEngine setup that doesn't use query strings. In cases like this, you can tell the system to "Force URL Query Strings" (see the Output Preferences in the Control Panel).

With this option enabled, the URLs output by ExpressionEngine are slightly different, but still far more readable and search engine-friendly than a typical dynamic system might output. With "Force URL Query Strings" turned on, an ExpressionEngine URL might look like this:

http://www.yoursite.com/index.php?/weblog/archives/

You'll notice that it is almost identical to the regular setting.

In a select few cases, turning on "Force URL Query Strings" by itself won't be enough. If URLs continue to not work even with that setting on, then you can open your main site index.php file. Toward the top you will see a $qtype variable with three possible settings. Try setting the variable to "2" (or possibly "1").