Getting Total CMS to work on IIS on windows server.

To save anyone else the trials and tribulations of getting Total CMS 3 running on IIS, here is what finally worked for me.

Set up the site as usual. One strong recommendation: use PHP Manager for IIS. It makes managing PHP on IIS much easier and saves you from manually editing php.ini for every little change.

You can get it here:

https://docs.lextudio.com/phpmanager/

In my experience, PHP Manager is much cleaner and far less painful than editing configuration files by hand.

When IIS is configured, it will create a web.config file for you in the root of your project. Think of this as the IIS equivalent of an .htaccess file on Apache.

The important point is this:

The rewrite/config changes need to go in the root-level web.config file, not buried inside the tcms folder.

Open the web.config file in a text editor and paste the required configuration after the closing </handlers> tag and before the closing </system.webServer> tag.

Once that is in place, save the file and refresh the site. Voila — the Total CMS 3 admin route works correctly on IIS.

Why put it at the project root?

Because if you update Total CMS 3 later, anything inside the tcms folder could potentially be overwritten or changed. Keeping the IIS-specific configuration at the root level protects your setup and makes future updates much safer.

Key takeaways:

  1. Use PHP Manager for IIS to simplify PHP setup.

  2. PHP Manager documentation: https://docs.lextudio.com/phpmanager/

  3. Let IIS create the root web.config.

  4. Add the required rewrite/config rules at the project root.

  5. Do not place this inside the tcms folder.

  6. Keeping it at root level helps prevent future Total CMS 3 updates from breaking your configuration.

Hope this saves someone else a few hours of head scratching.

anyways we are just adding the rewrite rules to the file you can copy paste from below or tell AI to merge the one it created with these rules .

Onto next project


 <rewrite>

<rules>

<!--

 Total CMS (tcms) — Apache equivalents:

 rw_common/plugins/stacks/tcms/.htaccess

 rw_common/plugins/stacks/tcms/public/.htaccess

 -->

<rule name="TCMS prefix public folder" stopProcessing="false">

<match url="^rw_common/plugins/stacks/tcms/(.*)$" ignoreCase="true" />

<conditions>

<add input="{REQUEST_URI}" pattern="tcms/public/" negate="true" ignoreCase="true" />

</conditions>

<action type="Rewrite" url="rw_common/plugins/stacks/tcms/public/{R:1}" appendQueryString="true" />

</rule>

<rule name="TCMS front controller" stopProcessing="true">

<match url="^rw_common/plugins/stacks/tcms/public/(.*)$" ignoreCase="true" />

<conditions logicalGrouping="MatchAll">

<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />

<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />

</conditions>

<action type="Rewrite" url="rw_common/plugins/stacks/tcms/public/index.php" appendQueryString="true" />

</rule>

</rules>

</rewrite>
3