CFWheels htaccess rules not working in OLS Rewrite.

43 views
Skip to first unread message

Franc Amour

unread,
Mar 28, 2018, 5:09:42 PM3/28/18
to OpenLiteSpeed Development
In my current project, I am attempting to use the CFWheels framework, with friendly URLs.  The OLS virtual host is set up to make index.cfm the default document if nothing is in the URL, and the index.cfm file is rewritten as the file rewrite.cfm as required by CFWheels so these 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]


should do the following, if I am not mistaken:

FIRST, the assumption is that:


becomes 


via the virtual host configuration that specifies index.cfm as the "default document" if none is specified, and further that this is going to happen BEFORE any rewrite rules are processed... then...


THE FIRST CONDITION is simply matching


using case insensitivity. If there is a match, the next rule is applied, effectively changing 


to 


internally, and leaving in anything that appears after it. Therefore,


becomes



NEXT, a new condition specifies that if anything after:


Is in the list provided, that the next rule should NOT be applied.  So if the URL is


It's going to be passed on as exactly that URL internally.

But, if it is:


or


it's going to then become


internally.

From there, the url remains appearing as http://www.example.com/this/is/killing/me, but is passed through rewrite.cfm so it can actually be processed by ColdFusion engine as a .cfm call.  CFWheels, with URL Rewrite turned on, is then able to interpret everything after rewrite.cfm/ programmatically, using Rails-like routes, etc.
 
SO... These rules are in the .htaccess file, which works perfectly on Apache web server (and has since the early days of CFWheels, years ago).  But This alone is not even working -- .htaccess is totally ignored.  Added to the Rewrite tab of the virtual host, the results are grim... let's start with a single example and see if we can go from there...


CASE ONE: A call to http://www.example.com/index.cfm yields the following in the error log:

2018-03-28 21:02:15.477108 [INFO] [172.18.0.1:36134:HTTP2-1] [REWRITE] Rule: Match '/index.cfm' with pattern '^.*/index.cfm/(.*)$', result: -1
2018-03-28 21:02:15.504938 [INFO] [172.18.0.1:36134:HTTP2-1] [REWRITE] Rule: Match '/index.cfm' with pattern '^(.*)$', result: 2
2018-03-28 21:02:15.505785 [INFO] [172.18.0.1:36134:HTTP2-1] [REWRITE] Cond: Match '/index.cfm' with pattern '^.*/(flex2gateway|jrunscripts|cfide|cfformgateway|cffileservlet|lucee|files|images|javascripts|miscellaneous|stylesheets|wheels/public/assets|robots.txt|favicon.ico|sitemap.xml|rewrite.cfm)($|/.*$)', result: -1
2018-03-28 21:02:15.506596 [INFO] [172.18.0.1:36134:HTTP2-1] [REWRITE] Source URI: '/index.cfm' => Result URI: './rewrite.cfm/index.cfm'
2018-03-28 21:02:15.507622 [INFO] [172.18.0.1:36134:HTTP2-1] [REWRITE] Last Rule, stop!!


That resulting URI is already wrong, so I have to assume until that's resolved, nothing else is going to matter.  

CASE TWO:  So then i thought maybe the rule match for the trailing slash has something to do with this, so i tried http://www.example.com/index.cfm/ and got this:

2018-03-28 21:03:56.061931 [INFO] [172.18.0.1:36140:HTTP2-1] [REWRITE] Rule: Match '/index.cfm/' with pattern '^.*/index.cfm/(.*)$', result: 2
2018-03-28 21:03:56.083449 [INFO] [172.18.0.1:36140:HTTP2-1] [REWRITE] Cond: Match '/index.cfm/' with pattern '^.*/index.cfm/(.*)$', result: 2
2018-03-28 21:03:56.084138 [INFO] [172.18.0.1:36140:HTTP2-1] [REWRITE] Source URI: '/index.cfm/' => Result URI: './rewrite.cfm/'
2018-03-28 21:03:56.084818 [INFO] [172.18.0.1:36140:HTTP2-1] [REWRITE] Last Rule, stop!

CASE THREE:  If I leave index.cfm off of the request (http://www.example.com), the log shows:

2018-03-28 21:00:31.449070 [INFO] [172.18.0.1:36124:HTTP2-7] [REWRITE] Rule: Match '/' with pattern '^.*/index.cfm/(.*)$', result: -1
2018-03-28 21:00:31.450239 [INFO] [172.18.0.1:36124:HTTP2-7] [REWRITE] Rule: Match '/' with pattern '^(.*)$', result: 2
2018-03-28 21:00:31.451096 [INFO] [172.18.0.1:36124:HTTP2-7] [REWRITE] Cond: Match '/' with pattern '^.*/(flex2gateway|jrunscripts|cfide|cfformgateway|cffileservlet|lucee|files|images|javascripts|miscellaneous|stylesheets|wheels/public/assets|robots.txt|favicon.ico|sitemap.xml|rewrite.cfm)($|/.*$)', result: -1
2018-03-28 21:00:31.451861 [INFO] [172.18.0.1:36124:HTTP2-7] [REWRITE] Source URI: '/' => Result URI: './rewrite.cfm/'
2018-03-28 21:00:31.452693 [INFO] [172.18.0.1:36124:HTTP2-7] [REWRITE] Last Rule, stop!


The resulting URI is not coming out as it should, and CFWheels is basically choking on it.  CASE ONE is clearly the wrong result, and the other two don't look right either, though I'm not sure why it can't at least see the file at ./rewrite.cfm/ -- and at least in CASE THREE, it's matching a '/' when the vhost should have already internally converted that empty URL to /index.cfm as the file to be processed, sa the default document.

Again, the same rules, verbatim in a .htaccess file for Apache web server work flawlessly.

I don't think I shoudl have to change standard Apache Rewrite rules, but if I have to, I just need to know what the new rulebook is.  If you're gonna move the goalposts, at least give me an idea which direction to throw the ball next =)

If there's someplace online I can get faster support, let me know.  This project has slowed to a crawl as i have several questions that have gone basically unanswered now. I'm just trying to come up with a solid config that I can use to promote this web server, and a basis for my CF projects to run faster on a much nicer web server.




George Wang

unread,
Mar 28, 2018, 5:26:54 PM3/28/18
to OpenLiteSpeed Development

since the rewrite rule is from .htaccess, you should not try to put it in rewrite tab under vhost, it became vhost level rewrite. 
Instead, you should create a "/" static context pointing to document root, and copy the rewrite rule from .htaccess as-is to "/"context level rewrite. 
It has the same effect as created a <Directory ...> context in Apache config. 

Apache's rewrite engine treat vhost level rewrite and context level rewrite differently. OLS rewrite engine strictly follow Apache's rewrite engine's behavior.

I think it should fix the rewrite problem for you.

Best regards,
George Wang


Franc Amour

unread,
Mar 28, 2018, 5:45:22 PM3/28/18
to OpenLiteSpeed Development
Thank you so much for the fast reply.

I don't know if I'm able to create a static vhost at / because I already have a proxy vhost, so that I can pass my requests to Tomcat/Lucee.

Not sure if this info helps, but I'll add it:

The current configuration uses an External App:  Web Server and several Script Handlers to send .cfm, .cfml, .cfc and .lucee files to that web server (localhost:8888).  The current / context is a proxy to that web server.

I originally tried to do this a different way, using External App: Servlet Engine, and a Servlet / context, and it worked for GETs but strangely, form POSTs would spin and then 503, so i had to abandon that (preferred) configuration.

It seems the htaccess rules I added are at least being recognized, but obviously they aren't working "correctly" - any idea what the real difference is between vhost and context-level Rewrite rules are?

I cannot add rewrite rules to the / context when it's a proxy, it does not provide the option. And I don't think it will allow more than one / context... correct?

Franc Amour

unread,
Mar 28, 2018, 6:01:22 PM3/28/18
to OpenLiteSpeed Development
I removed the proxy context and added a static one as you suggested, with the rewrite rules exactly as they were taken from the .htaccess file, but still no luck.  The calls to .cfm pages still seem to work just fine, but now I'm getting:

http://www.example.com/dashboard (throws Tomcat 404 now, instead of OLS):

2018-03-28 22:01:51.428119 [INFO] [172.18.0.1:36530:HTTP2-1] [REWRITE] strip base: '/' from URI: '/dashboard'
2018-03-28 22:01:51.458703 [INFO] [172.18.0.1:36530:HTTP2-1] [REWRITE] Rule: Match 'dashboard' with pattern '^.*/index.cfm/(.*)$', result: -1
2018-03-28 22:01:51.459693 [INFO] [172.18.0.1:36530:HTTP2-1] [REWRITE] Rule: Match 'dashboard' with pattern '^(.*)$', result: 2
2018-03-28 22:01:51.460472 [INFO] [172.18.0.1:36530:HTTP2-1] [REWRITE] Cond: Match '/dashboard' with pattern '^.*/(flex2gateway|jrunscripts|cfide|cfformgateway|cffileservlet|lucee|files|images|javascripts|miscellaneous|stylesheets|wheels/public/assets|robots.txt|favicon.ico|sitemap.xml|rewrite.cfm)($|/.*$)', result: -1
2018-03-28 22:01:51.461237 [INFO] [172.18.0.1:36530:HTTP2-1] [REWRITE] Source URI: 'dashboard' => Result URI: './rewrite.cfm/dashboard'
2018-03-28 22:01:51.462068 [INFO] [172.18.0.1:36530:HTTP2-1] [REWRITE] Last Rule, stop!
2018-03-28 22:01:51.462879 [INFO] [172.18.0.1:36530:HTTP2-1] [REWRITE] prepend rewrite base: '/', final URI: '/./rewrite.cfm/dashboard'
2018-03-28 22:01:51.499601 [INFO] [172.18.0.1:36530:HTTP2-3] [REWRITE] strip base: '/' from URI: '/dashboard'
2018-03-28 22:01:51.500694 [INFO] [172.18.0.1:36530:HTTP2-3] [REWRITE] Rule: Match 'dashboard' with pattern '^.*/index.cfm/(.*)$', result: -1
2018-03-28 22:01:51.501548 [INFO] [172.18.0.1:36530:HTTP2-3] [REWRITE] Rule: Match 'dashboard' with pattern '^(.*)$', result: 2
2018-03-28 22:01:51.502476 [INFO] [172.18.0.1:36530:HTTP2-3] [REWRITE] Cond: Match '/dashboard' with pattern '^.*/(flex2gateway|jrunscripts|cfide|cfformgateway|cffileservlet|lucee|files|images|javascripts|miscellaneous|stylesheets|wheels/public/assets|robots.txt|favicon.ico|sitemap.xml|rewrite.cfm)($|/.*$)', result: -1
2018-03-28 22:01:51.503328 [INFO] [172.18.0.1:36530:HTTP2-3] [REWRITE] Source URI: 'dashboard' => Result URI: './rewrite.cfm/dashboard'
2018-03-28 22:01:51.504241 [INFO] [172.18.0.1:36530:HTTP2-3] [REWRITE] Last Rule, stop!
2018-03-28 22:01:51.505123 [INFO] [172.18.0.1:36530:HTTP2-3] [REWRITE] prepend rewrite base: '/', final URI: '/./rewrite.cfm/dashboard'

So it might be a little closer, not sure.

A call to http://www.example.com now shows in the log as:

2018-03-28 22:03:06.667541 [INFO] [172.18.0.1:36538:HTTP2-1] [REWRITE] strip base: '/' from URI: '/'
2018-03-28 22:03:06.690352 [INFO] [172.18.0.1:36538:HTTP2-1] [REWRITE] Rule: Match '' with pattern '^.*/index.cfm/(.*)$', result: -1
2018-03-28 22:03:06.691077 [INFO] [172.18.0.1:36538:HTTP2-1] [REWRITE] Rule: Match '' with pattern '^(.*)$', result: 2
2018-03-28 22:03:06.691646 [INFO] [172.18.0.1:36538:HTTP2-1] [REWRITE] Cond: Match '/' with pattern '^.*/(flex2gateway|jrunscripts|cfide|cfformgateway|cffileservlet|lucee|files|images|javascripts|miscellaneous|stylesheets|wheels/public/assets|robots.txt|favicon.ico|sitemap.xml|rewrite.cfm)($|/.*$)', result: -1
2018-03-28 22:03:06.692240 [INFO] [172.18.0.1:36538:HTTP2-1] [REWRITE] Source URI: '' => Result URI: './rewrite.cfm/'
2018-03-28 22:03:06.692675 [INFO] [172.18.0.1:36538:HTTP2-1] [REWRITE] Last Rule, stop!
2018-03-28 22:03:06.693162 [INFO] [172.18.0.1:36538:HTTP2-1] [REWRITE] prepend rewrite base: '/', final URI: '/./rewrite.cfm/'


George Wang

unread,
Mar 28, 2018, 6:07:26 PM3/28/18
to OpenLiteSpeed Development

.htaccess rewrite rule has the rewrite base part removed from the URL, so, in your rule, you should change the last rule from 

RewriteRule ^(.*)$ ./rewrite.cfm/$1 [NS,L]

to

RewriteRule ^/(.*)$ /rewrite.cfm/$1 [NS,L]

should not rewrite to ./rewrite.cfm, either "/rewrite.cfm" or just relative url "rewrite.cfm" . 

George Wang

unread,
Mar 28, 2018, 6:08:21 PM3/28/18
to OpenLiteSpeed Development
I think the rewrite result is correct now. 

George Wang

unread,
Mar 28, 2018, 6:12:43 PM3/28/18
to OpenLiteSpeed Development
http://www.example.com/dashboard (throws Tomcat 404 now, instead of OLS):
It could be the tomcat expect the /rewrite.cfm as part of the proxy URL? usually, rewritten URL is not used for HTTP proxy. maybe the AJP backend will do better. 

Franc Amour

unread,
Mar 28, 2018, 6:22:59 PM3/28/18
to OpenLiteSpeed Development
Except as I said, there was the crazy stall/503 with form submits.  I would LOVE to be using AJP right now.

George Wang

unread,
Mar 28, 2018, 6:25:24 PM3/28/18
to OpenLiteSpeed Development
Can you try it see if it works or not? 
We will fix the POST problem. 

Franc Amour

unread,
Mar 28, 2018, 6:39:23 PM3/28/18
to OpenLiteSpeed Development
Seems we're making progress now...  With that change, I now have these rules in a static context / :

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 with these rules, the following urls work and even the images are now being passed through properly (only the first really applies, but I tested them all just for forensics):


The following do not work:
http://www.example.com/rewrite.cfm/  # unimportant, but possibly indicative of an issue
http://www.example.com/dashboard   # Now an OLS 404; this is the one that really needs to work, along with any additional / strings after dashboard
http://www.example.com/dashboard/  # Also an OLS 404 now, same as above
http://www.example.com/timesheets/234234/edit     #also an OLS 404, etc.



2018-03-28 22:36:19.646161 [INFO] [172.18.0.1:36870:HTTP2-11] [REWRITE] strip base: '/' from URI: '/rewrite.cfm/'
2018-03-28 22:36:19.647993 [INFO] [172.18.0.1:36870:HTTP2-11] [REWRITE] Rule: Match 'rewrite.cfm/' with pattern '^.*/index.cfm/(.*)$', result: -1
2018-03-28 22:36:19.648687 [INFO] [172.18.0.1:36870:HTTP2-11] [REWRITE] Rule: Match 'rewrite.cfm/' with pattern '^/(.*)$', result: -1



2018-03-28 22:39:11.959096 [INFO] [172.18.0.1:36882:HTTP2-1] [REWRITE] strip base: '/' from URI: '/dashboard'
2018-03-28 22:39:11.983600 [INFO] [172.18.0.1:36882:HTTP2-1] [REWRITE] Rule: Match 'dashboard' with pattern '^.*/index.cfm/(.*)$', result: -1
2018-03-28 22:39:11.984311 [INFO] [172.18.0.1:36882:HTTP2-1] [REWRITE] Rule: Match 'dashboard' with pattern '^/(.*)$', result: -1


2018-03-28 22:40:06.845033 [INFO] [172.18.0.1:36882:HTTP2-7] [REWRITE] strip base: '/' from URI: '/timesheets/234234/edit'
2018-03-28 22:40:06.845754 [INFO] [172.18.0.1:36882:HTTP2-7] [REWRITE] Rule: Match 'timesheets/234234/edit' with pattern '^.*/index.cfm/(.*)$', result: -1
2018-03-28 22:40:06.846351 [INFO] [172.18.0.1:36882:HTTP2-7] [REWRITE] Rule: Match 'timesheets/234234/edit' with pattern '^/(.*)$', result: -1




George Wang

unread,
Mar 28, 2018, 6:59:24 PM3/28/18
to OpenLiteSpeed Development
If you use "/" context, the rewrite rule should not add leading "/". only add that for vhost level rewrite. 
RewriteRule ^(.*)$ rewrite.cfm/$1 [NS,L]

should work.

Franc Amour

unread,
Mar 28, 2018, 7:07:04 PM3/28/18
to OpenLiteSpeed Development
Nope, still no joy.

Current rules:

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]

(red is the one I just changed per your suggestion above)

With these, for url http://www.example.com/dashboard (which should translate internally to http://www.example.com/rewrite.cfm/dashboard), the error log contains:

2018-03-28 23:06:43.404483 [INFO] [172.18.0.1:36890:HTTP2-79] [REWRITE] strip base: '/' from URI: '/dashboard'
2018-03-28 23:06:43.412086 [INFO] [172.18.0.1:36890:HTTP2-79] [REWRITE] Rule: Match 'dashboard' with pattern '^.*/index.cfm/(.*)$', result: -1
2018-03-28 23:06:43.413196 [INFO] [172.18.0.1:36890:HTTP2-79] [REWRITE] Rule: Match 'dashboard' with pattern '^/(.*)$', result: -1
2018-03-28 23:06:43.589319 [INFO] [172.18.0.1:36890:HTTP2-81] [REWRITE] strip base: '/' from URI: '/dashboard'
2018-03-28 23:06:43.590516 [INFO] [172.18.0.1:36890:HTTP2-81] [REWRITE] Rule: Match 'dashboard' with pattern '^.*/index.cfm/(.*)$', result: -1
2018-03-28 23:06:43.591594 [INFO] [172.18.0.1:36890:HTTP2-81] [REWRITE] Rule: Match 'dashboard' with pattern '^/(.*)$', result: -1


But instead I still get an OLS 404.

Franc Amour

unread,
Mar 29, 2018, 8:52:01 AM3/29/18
to OpenLiteSpeed Development
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!

Franc Amour

unread,
Mar 29, 2018, 9:31:55 AM3/29/18
to OpenLiteSpeed Development
And by getting rid of rewrite.cfm in CFWheels and specifying index.cfm as the rewrite handler with manually turning on url rewriting, I managed to get the rules down to just these two lines, without having to modify the Lucee config in tomcat's web.xml file in any way:

RewriteCond %{REQUEST_URI} !^.*(bootstrap|bower_components|dist|flex2gateway|jrunscripts|cfide|cfformgateway|cffileservlet|lucee|files|images|javascripts|miscellaneous|stylesheets|wheels/public/assets|robots.txt|favicon.ico|sitemap.xml|index.cfm)($|.*$) [NC]
RewriteRule ^(.*)$ index.cfm/$1 [NS,L]

I can now start experimenting with the caching in OLS, to see if I can purge specific pages/urls or the entire OLS cache using functions I build into a CFWheels plugin!

Now, if we could just get AJP working, this will be a rockin configuration!

George Wang

unread,
Mar 29, 2018, 4:21:22 PM3/29/18
to OpenLiteSpeed Development
Glad that you get rid of rewrite.cfm and make it working, I was wondering why rewrite.cfm being added. 


Franc Amour

unread,
Mar 30, 2018, 8:13:17 AM3/30/18
to OpenLiteSpeed Development
It was a 'vestigial appendage' of sorts from earlier versions of CFWheels, when the framework was somewhat opinionated about rewriting on various platforms. They would directly provide rewrite rules in the distro (htaccess, web.config, etc), and the combination of rewrite rules and that file allowed the framework itself to "know" when a URL was being rewritten so that it could automatically do certain things. With the latest version, they abandoned that approach, instead providing the rules just within documentation, and providing a setting in the framework to turn SES urls on or off, therefore letting the devs decide explicitly what was to be used.

Simplified the whole thing a bit!

I want to thank you for sticking with me... i hope to be around and maybe help others here down the line myself.

westj007

unread,
Aug 30, 2018, 5:17:06 PM8/30/18
to OpenLiteSpeed Development
I have been killing myself for hours trying to figure out why the .htaccess in the CFWheels docs aren't working.  This finally solved it for me.

Thank you!
Reply all
Reply to author
Forward
0 new messages