[eluser]pickupman[/eluser]
I just tried this locally on Apache, and I am getting a 200 response when url_suffix is set to '.html'. Both index.php/welcome/index and index.php/welcome/index.html have a 200 status code.
If I set the url_suffix to be blank (default)
index.php/welcome/index => 200
index.php/welcome/index.html => 404
This seems to be the opposite of what you have described. The Router class calls:
Code:
$this->uri->_remove_url_suffix();
If it is set to blank then nothing is removed from the last segment making the Router parse the url as index.html as the method to run in your controller (index.html => index) giving a 404. This would the correct behavior. The inverse could be argued as bug or being correct. When the url_suffix is set, the Router class will remove it from the last segment, and the proper method will get called (index.html => index). If the suffix is not in the url, then the last segment still looks the same. (index => index).
I think latter behavior is correct because the last thing you want your users to see is a 404.