Recently at work, I was working on cleaning up some of the pages which are used to view the statistics of various domains. One in particular is the branded domain that is used for marketing purposes, while the actual content for the site resides at sub-domains.
For the sake of discussion, lets assume the branded domain is www.domain.com, while each of the sub-domains are broken down by year; yyyy.domain.com.
The existing structure of the statistics, only allowed for a single years worth of statistics to be stored (logically speaking). Under the document root, there were simply a bunch of folders representing the current month and previous months that had elapsed.
Doing the logical thing, I created folders named yyyy.domain.com with sub-folders named by monty with a yy suffix on them. After spending considerable time collating all of the statistics for the domain (there are tens of gigabytes of log files), it was finally complete.
As I went to view the statistics, I was greeted with a rather strange error message from IIS:
HTTP 403.1 Forbidden: Execute Access Forbidden
You would normally interpret that sort of an error as a permission problem. For instance, you were running some sort of script/cgi and the virtual host had no execute permissions. Well after checking the vhost information, script execution was turned on. So for the sake of testing, I increased it to scripts and executables. Still nothing, I was beginning to wonder what was going on. I then checked the permissions on all the folders I had created (I created them over the network, thought maybe the right rwx permissions hadn’t come across), nope.. they were fine too.
After a couple of hours of head scratching and googling, still nothing. There were thousands of pages relating to actual cgi/script/executable problems, however mine was plain static HTML.
The problem: I named my folders yyyy.domain.com. For some reason, IIS considers a folder with dots/periods in them to be invalid.
The solution: remove the dots in the sub-folders and replace them with underscoress (_). Bing, worked like a charm.