<question>
Cold Fusion work arounds to question marks in URL's. Any suggestions when using
.asp?
</question>
First off it is important to understand both the reasons for
implementing a workaround and the SE's which are affected
by ?(querystrings).
Contrary to much of what I've seen on this subject there is only
1 or 2 majors which don't handle the qstring. AV is one that
the regular indexer chokes on these. The other possible engine
is Inktomi. Detlev would know better than I if this is truly the
case for Inktomi.
Whenever I'm providing a solution I determine benefits to cost.
Sometimes it is more cost effective to look at another solution
other than a programmatic solution. It is often effective to look
beyond just what you can "personally" provide.
In the case of Inktomi, Inclusion may be a more cost effective
workaround then implementing any other solution. This guarantees
regular indexing and a querystring solution. You might say, the
double play ball, so to speak. Position Tech is a good bet for this
solution.
http://www.positiontech.com
Av Inclusion program may also spider urls with qstrings, but
do they even matter anymore? The cost just may not be justified
from a traffic standpoint.
One of the other considerations at this point is the added usability
for users by dropping the qstring. This provides an easier URL to
remember and looks much better when hrefs are displayed in status
and URL locator window. It would be a good idea to include this
benefit as well when deciding upon the solution to the problem.
There are a few methods that can be used for workarounds for
.asp. I have been doing nothing but development and SEO on
dynamic sites for the past 3 years. IMHO, the best way is to
embed the parameters and any needed database queries in the
page. Note that to conform to the I-search format I've put some
on double lines when they should all be on a single line.
<%@ Language=VBScript %>
<!--#include virtual="/dir/adovbs.inc"-->
<!--#include virtual="/dir/vars.inc"-->
<%strID=request.querystring("ID") 'is state turned on?
iProdID="12334"
strBrand="Niko"
strCat="cell phone accessories"
'Constants are kept in an included file at the directory
'level for each brand or type of product
Const KW="cellphones accessories cell phone cellular phones"
Const Description="ABC Cellular wholesale and retail "
strMetaDesc=""&Description&strCat&" by "&strBrand&"."
strTitle=""&strBrand&" manufacturers of "&strCat&"."
strKW=""&strBrand&" "&strCat&" "&KW 'put page variables at
'the begining of all head tags for full optimization
'query the db using ado
Set rs=Server.CreateObject("ADODB.Recordset")
sqltemp="select * from Table where (Prod="
sqltemp=sqltemp&"'"&iProdID&"'"&")"
rs.open sqltemp, connectme, adopenstatic
iPrice=rs("Price")
strProdDesc=rs("ProdDesc")
rs.close
set rs=nothing%>
<html>
the rest of the page
This for all intents and purposes is a static page to an engine
and user. No querystrings are needed unless you are maintaining
state for a shopping cart or like application. If maintaing state I
will turn on the qstring by testing for a variable in the link tag:
<a href="/<%=strBrand%>/<%=strCat%>.asp
<%if not strID="" then%>?ID=<%=strID%><%end if%>"><%=strBrand%>
<%=strCat%></a>.
strID is activated when the user takes an action that requires
maintaining state ie:adds something to the cart. Since engines
won't take this action then........... you have hidden qstrings for
maintaining state.
This hides the qstring from crawlers and users until it is needed.
I have seen this complete solution used with Cold Fusion also.
If I'm doing a large site I will write the pages using a perl program
that reads data out of the database and publishes the pages with
the needed embedded parameters and database queries. It can
also be done with VBscript but the code is verbose and takes
longer to write.
Hope this helps. |