VFS is a great idea when using it makes sense. However, using it when it will overcomplicate a solution doesn't.
WolfShade wrote: The inmemory (VFS) is a great idea as long as the CF version is 10+. Earlier versions do not have a "per application" VFS, allowing any site/app on that server to access any file in the VFS. Just my $0.032749 worth. ^_^ |
Thanks all for the help. Got it! I needed to strip all the html tags and remove extraneous lines in my code. Still needed cfoutput tags inside of cfsavecontent to generate the variables.
This is cool because now the htaccess file will be re-created dynamically every time a client changes page structure.
P.S. I hate SEO (search engine optimized) page names!
Here's the finished code:
<cfsavecontent variable="myhtaccess">
<cfoutput>
RewriteEngine on
RewriteRule index.htm index.cfm [I,O,R=301,L]
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^home index.cfm [NC,L,QSA]
<CFQUERY
Name="getmenu"
Datasource="#db.02.dsn#" >
SELECT
*
FROM page
order by pageid
</CFQUERY>
<cfloop query="getmenu" startrow="1" endrow="#getmenu.recordcount#">
<CFQUERY
Name="getmenusub"
Datasource="#db.02.dsn#" >
SELECT
*
FROM pagesub
where pageid = #getmenu.pageid#
</CFQUERY>
<cfif getmenu.pagename contains " ">
<cfset menu = ReReplace(getmenu.pagename, " ", "\ ", "ALL")>
<cfelse>
<cfset menu = getmenu.pagename>
</cfif>
RewriteRule ^#menu# page.cfm?pageid=#getmenu.pageid# [NC,L,QSA]
<cfloop query="getmenusub" startrow="1" endrow="#getmenusub.recordcount#">
<CFQUERY
Name="getmenusub2"
Datasource="#db.02.dsn#" >
SELECT
*
FROM pagesub2
where pagesubid = #getmenusub.pagesubid#
</CFQUERY>
<cfif getmenusub.pagename contains " ">
<cfset menusub = ReReplace(getmenusub.pagename, " ", "\ ", "ALL")>
<cfelse>
<cfset menusub = getmenusub.pagename>
</cfif>
RewriteRule ^#menusub# pagesub.cfm?pagesubid=#getmenusub.pagesubid# [NC,L,QSA]
<cfloop query="getmenusub2" startrow="1" endrow="#getmenusub2.recordcount#">
<CFQUERY
Name="getmenusub3"
Datasource="#db.02.dsn#" >
SELECT
*
FROM pagesub3
where pagesub2id = #getmenusub2.pagesub2id#
</CFQUERY>
<cfif getmenusub2.pagename contains " ">
<cfset menusub2 = ReReplace(getmenusub2.pagename, " ", "\ ", "ALL")>
<cfelse>
<cfset menusub2 = getmenusub2.pagename>
</cfif>
RewriteRule ^#menusub2# pagesub2.cfm?pagesub2id=#getmenusub2.pagesub2id# [NC,L,QSA]
<cfloop query="getmenusub3" startrow="1" endrow="#getmenusub3.recordcount#">
<CFQUERY
Name="getmenusub4"
Datasource="#db.02.dsn#" >
SELECT
*
FROM pagesub3
where pagesub3id = #getmenusub3.pagesub3id#
</CFQUERY>
<cfif getmenusub3.pagename contains " ">
<cfset menusub3 = ReReplace(getmenusub3.pagename, " ", "\ ", "ALL")>
<cfelse>
<cfset menusub3 = getmenusub3.pagename>
</cfif>
RewriteRule ^#menusub3# pagesub3.cfm?pagesub3id=#getmenusub3.pagesub3id# [NC,L,QSA]
</cfloop>
</cfloop>
</cfloop>
</cfloop>
</cfoutput>
</cfsavecontent>
done!
<cffile action="write" file="#getaccount.subsite#/adm/htaccess.txt" output="#myhtaccess#" charset="utf-8">