Hi Sam,
We responded to your support request via email. It makes it difficult to help you when you go back and forth between the main WP-SpamShield Support channel and here.
I’m glad you were able to sort out one of your configuration issues.
As noted in the Known Conflicts page, we do provide limited support for IIS:
What does limited support mean? It means we will do our best to make sure the code is compatible with as many systems out there as possible, and when there are issues, we will do our best to help, but being that there are a lot more things that can go wrong when PHP is running on IIS, you need to realize that the issue may not necessarily be the plugin but the server configuration…
Unfortunately, the nature of IIS just makes it a less-than-ideal system for running WordPress (and PHP in general). If a user requests help, we will do what we can to help.
However, with a properly configured server, users can run WordPress and WP-SpamShield quite smoothly, and most do.
Regarding your particular issue, please see the following from the Known Conflicts page’s IIS section:
If you are using IIS, remember that one of the Minimum Requirements for the plugin is that your server is configured to use an .htaccess file.
This can be done using Helicon Ape, which adds some valuable Apache functionality to IIS:
“It literally implements Apache configuration model and nearly all Apache modules in a single IIS add-on, not only making IIS compatible with Apache, but also extending it`s functionality by a number of highly essential features. Includes following modules: mod_rewrite, mod_proxy, mod_auth, mod_gzip, mod_headers, mod_cache, mod_expires, mod_replace and others.”
IIS’ equivalent to .htaccess is the web.config file. Both are directory-level overrides for certain server configuration settings.
Allowing two separate directory-level override files to function on a server at the same time is generally not a good practice and can cause conflicts and other problems. Yet, many IIS servers running WordPress end up doing this. If your site is properly configured to use .htaccess, you need to ensure that your site is configured to NOT use web.config in your WordPress site directory and below. This can be accomplished a number of ways, one being the AllowSubDirConfig setting ( https://blogs.msdn.microsoft.com/sroun/2014/11/13/allowsubdirconfig-clarification/ ), which is similar to the Apache setting AllowOverride.
Additionally, since you will be using .htaccess, URL Rewrite Module 1.1 should be disabled for the site, or alternatively, you can use the ‘iis7_supports_permalinks’ hook (with a function that returns ‘FALSE’) to tell WordPress that IIS does not support permalinks. Then it will fall back to the default setting of checking for an .htaccess file, and use the Apache style permalinks.
We are happy to help, but again, the best way for us to do that is if you continue the thread started through the plugin’s main support channel – the WP-SpamShield Support page. If you have any further questions or issues, please continue there.
– Scott
Please note that the WP-SpamShield Support page is our main support venue, not the WordPress forums here, so that will always be the best way to get a quick response and resolve any tech support issues.