Symptoms
When you request a page with an extension other than "html" or "htm" the browser displays the HTML source instead of the page. You are using dispatcher.
Cause
What you have encountered happens when the web server returns a content type of text/plain
for all unknown extension. IE will display the content properly, Firefox have this problem as it follows the http header strictly.
This occurs for cached content by the dispatcher, if you use the URL http://www.yoursite.com/site/en/index.htl?a=a
you will see that the content is displayed correctly, as the content is served from the CQ instance with the correct content type been set.
Resolution
To change the web server behavior, you will need to change the default mime type to be text/html
If you are using Apache, modify your http.conf, look for DefaultType
and change the value to text/html
For other web server, you will need to check out the web server documentation on how to change the default mime type.
After changing the configuration, restart the web server, clear your browser cache