Okay George, with a fresh set of eyes after a restless night of sleep, I *think* I figured this out. Part of the problem is this stripping of the leading slash that OLS is doing (which in all honesty, if OLS is going to claim to be Apache-compatible, should not be going on), combined with paying attention to and resolving the Tomcat issue.
Here are the original CFWheels .htaccess rules:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_URI} ^.*/index.cfm/(.*)$ [NC]
RewriteRule ^.*/index.cfm/(.*)$ ./rewrite.cfm/$1 [NS,L]
RewriteCond %{REQUEST_URI} !^.*/(flex2gateway|jrunscripts|cfide|cfformgateway|cffileservlet|lucee|files|images|javascripts|miscellaneous|stylesheets|wheels/public/assets|robots.txt|favicon.ico|sitemap.xml|rewrite.cfm)($|/.*$) [NC]
RewriteRule ^(.*)$ ./rewrite.cfm/$1 [NS,L]
And here are my revised rules:
# this block added so that it can handle plain old /index.cfm; without it we end up with rewrite.cfm/index.cfm
RewriteCond %{REQUEST_URI} index.cfm$ [NC]
RewriteRule index.cfm$ rewrite.cfm [NS,L]
# these are the rest of the standard CFWheels rules, with modification to handle no leading / in REQUEST_URI:
RewriteCond %{REQUEST_URI} ^.*index.cfm/(.*)$ [NC]
RewriteRule ^.*index.cfm/(.*)$ ./rewrite.cfm/$1 [NS,L]
# this long line was modified temporarily to include root directories for a bootstrap theme; first three items are not standard
RewriteCond %{REQUEST_URI} !^.*(flex2gateway|jrunscripts|cfide|cfformgateway|cffileservlet|lucee|files|images|javascripts|miscellaneous|stylesheets|wheels/public/assets|robots.txt|favicon.ico|sitemap.xml|rewrite.cfm)($|.*$) [NC]
RewriteRule ^(.*)$ rewrite.cfm/$1 [NS,L]
And the last piece of the puzzle, making Tomcat recognize rewrite.cfm in an SES context:
<!-- Mappings for the Lucee servlet -->
<servlet-mapping>
<servlet-name>CFMLServlet</servlet-name>
<url-pattern>*.cfm</url-pattern>
<url-pattern>*.cfml</url-pattern>
<url-pattern>*.cfc</url-pattern>
<!-- Basic SES Mappings -->
<url-pattern>/index.cfc/*</url-pattern>
<url-pattern>/index.cfm/*</url-pattern>
<url-pattern>/index.cfml/*</url-pattern>
<url-pattern>/rewrite.cfm/*</url-pattern>
<url-pattern>/rewrite.cfml/*</url-pattern>
</servlet-mapping>
This modification to web.xml may not be necessary, if set(rewriteFile="index.cfm"); and set(urlRewriting="On"); are used in the CFWheels settings.cfm file (which would really make things much easier overall), but I have not tested this.
I have to do a bunch more tests and modify my Dockerfile and OLS/Lucee install scripts to build out these changes, but I think we MIGHT have this covered. If you have a way to optimize those rewrite rules, I'm all ears, as my RegEx skills are on par with used toilet paper.
Thanks for your help so far!