Как мне перенаправить на основе реферала в ColdFusion - PullRequest
1 голос
/ 17 декабря 2008

У меня есть сайт Coldfusion, который мне нужно изменить. Не имею ни малейшего понятия или опыта работы с этой средой (я знаю ASP.NET). Все, что мне нужно сделать, это написать условие, основанное на значении ссылки (URL) страницы, и в некоторых случаях перенаправить на другую страницу. Кто-нибудь может дать мне пример синтаксиса, который будет выполнять это?

Ответы [ 5 ]

5 голосов
/ 17 декабря 2008

Все остальные примеры будут работать ... также, если вы хотите перенаправить на основе ссылки с внешнего сайта, вы можете проверить CGI.HTTP_REFERER. Проверьте область CGI для нескольких других вариантов.

<cfif reFindNoCase('[myRegex]',cgi.http_referer)>
    <cflocation url="my_new_url">
</cfif>

... мой пример использует поиск по регулярному выражению (reFind() или reFindNoCase()), чтобы проверить URL-адрес ссылки ... но вы также можете проверить его как список с / в качестве разделителя (используя listContainsNoCase() ) в зависимости от того, что вы ищете.

2 голосов
/ 17 декабря 2008

Предположим, что переменная URL, на которой вы основываете это, называется goOn (http://yoursite.com? GoOn = yes ), тогда будет работать следующий код:

<cfif structKeyExists(url, "goOn") AND url.goOn eq "yes">
    <cflocation url="the_new_url" addtoken="false">
</cfif>

Ничего не произойдет после размещения.

1 голос
/ 17 декабря 2008

В ColdFusion есть область действия переменной CGI, которая содержит информацию о входящем запросе. Попробуйте следующее:

<cfif CGI.SCRIPT_NAME EQ 'index.cfm'>
    <cflocation url="where you want it to redirect" />
</cfif>

Чтобы увидеть, что еще доступно в области CGI, проверьте следующее: http://livedocs.adobe.com/coldfusion/8/htmldocs/Expressions_8.html#2679705

1 голос
/ 17 декабря 2008

Не сделал холодного плавления в течение короткого времени, но:

<cfif some_condition_based_on_your_url>
  <cflocation url="http://where_your_referrals_go">
</cfif>
<!--- continue processing for non-redirects --->
0 голосов
/ 15 декабря 2011

Динамическая версия.

<cfif isdefined("somecondition")>
    <cfset urlDestination = "someurl">
<cfelseif isdefined("somecondition")>
    <cfset urlDestination = "someurl">
.
.
.
<cfelse>
    <cfset urlDestination = "someurl">
</cfif>

<cflocation url = urlDestination>
...