Я настроил перезапись URL, которая прекрасно работает, когда я вручную задаю или набираю URL. Но когда я использую ссылку на странице в теге <cfoutput>
, например, ссылка дублирует строку.
Я использую ColdFusion 2016 с IIS 10
Например, URL-адрес
www.site.com/results.cfm?lang=1&categoryid=2&budegtid=all&typeid=all&propertyid=316
, и я хочу, чтобы он выводился как
www.site.com/properties/en/all/all/all/316
, это работает, но то, что, кажется, происходит, когда я устанавливаю ссылку, используя ... <cfoutput>
используя запрос ...
<cfif getProps.recordcount>
<cfoutput query = "getProps" startrow="#url.start#" maxrows="#perpage#">
<a href="property/#lang#/#category_id#/#budgetid#/#typeid#/#getProps.property_id#" id="listVewButton">View</a>
</cfoutput>
результат в ссылке на странице выводит как www.site.com/properties/en/all/all/all/316/properties/en/all/all/all/316
У меня web / config установлен как
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<directoryBrowse enabled="false" />
<urlCompression doStaticCompression="true" doDynamicCompression="true" />
<rewrite>
<rules>
<rule name="Property list URL rewrite">
<match url="^property/([_0-9a-z-]+)/([_0-9a-z-]+)/budget-range-([_0-9a-z-]+)/([_0-9a-z-]+)/([_0-9a-z-]+)" />
<action type="Rewrite" url="resultsproperty.cfm?lang={R:1}&categoryid={R:2}&budegtid={R:3}&typeid={R:4}&propertyid={R:5}" appendQueryString="false" />
</rule>
</rules>
</rewrite>
<httpErrors errorMode="Detailed" />
</system.webServer>
</configuration>
Cfquery ColdFusion выглядит следующим образом ...
<cfquery name="getProps" datasource="#session.odbcname#">
SELECT *
FROM properties P
INNER JOIN areas A
ON A.area_id = P.property_areaid
INNER JOIN categories C
ON C.category_id = P.property_propcategoryid
INNER JOIN price R
ON R.price_id = P.property_regularity
INNER JOIN types T
ON T.type_id = P.property_proptypeid
WHERE P.property_status != 'Off Market'
<cfif url.ref is not "all">
AND
(
property_ref like <cfqueryparam cfsqltype="cf_sql_varchar" value="%#url.ref#%">
OR property_refid like <cfqueryparam cfsqltype="cf_sql_varchar" value="%#url.ref#%">
OR property_town like <cfqueryparam cfsqltype="cf_sql_varchar" value="%#url.ref#%">
)
</cfif>
ORDER BY P.property_refid
Кажется, что он сначала извлекает реальный URL, а затем добавляет перезапись.
Любая помощь высоко ценится.