While I wasn’t planning on making a new plugin, this one just presented itself and had to be done.

Over on the Advanced WordPress facebook group, a post was made about an amusing javascript plugin called echochamber.js, which let you easily add a comment area to your site which looked like a normal form but in reality didn’t actually post to the website. Instead, the comment is saved to Local Storage so it appears to save (and if you come back to the page, you will still see your comment there) but your comments are never seen by anyone.

It’s a tongue-in-cheek way of keeping snarky/nasty comments off your content, while giving people the appearance and feeling of user engagement. Looking at the code, I saw how easy it would fit into a WordPress plugin so I whipped this one together. All credit for the functionality goes to Tessalt on GitHub, since it’s all her code: I just wrapped things up so it tucked nicely into the WordPress ecosystem.

If you’d like to take a look, you can find the plugin in the Echo Chamber Comments in the WordPress repository.

A client who hosts their own website recently launched a new version of their site, which had been developed in WordPress instead of the static html site they had before. However, they used their web space to host multiple applications in subdirectories on the domain. This was going to cause problems with WordPress and it’s rewrite rules, since the permalinks may have conflicted with the names of the physical directories where the other applications lived.

For most people’s WordPress installations running on a *nix platform, you would need to go into the `.htaccess` file and insert this RewriteRule above all other rules.

RewriteRule ^(images|intranet)($|/) - [L]

However, this client was hosting their site using Windows so we needed to figure out a way to make the same change under IIS, using the `web.config` file instead. After some digging and testing, we found it only takes a single additional line to add exclusions to the rewrite rules. Here is the full `web.config` file after modification.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="wordpress" patternSyntax="Wildcard">
          <match url="*" />
          <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
            <add input="{REQUEST_URI}" pattern="^/(images|intranet)" negate="true"/>
          </conditions>
          <action type="Rewrite" url="index.php"/>
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

With that one `{REQUEST_URI}` line, you can pipe-delimit all of the top-level directory names that you wish to exclude from the rewrite rules with IIS.

Hopefully this post helps someone else with the same problem!