2014-02-20 4 views
1

Я только что начал с FW/1, и я просто пытаюсь заставить все работать, но не очень повезло с адресами SES.FW/1 SES и IIS Rewites

Так Application.cfc я превращаюсь SES URLs, и удаление index.cfm у меня есть:

generateSES = true 
SESOmitIndex = true 

в моем main.cfc У меня есть 2 вещи default и seconditem:

public void function default(rc) { 
    rc.when = now(); 
    variables.fw.service('formatter.longdate', 'today'); 
} 

public void function seconditem(rc) { 
    rc.when = now(); 
    variables.fw.service('formatter.longdate', 'today'); 
} 

Я имею представления для каждый пункт в main.cfc, и у меня есть это правило перезаписи в моем web.config файле

<rule name="Insert index.cfm" stopProcessing="true"> 
    <match url="^(.*)$" ignoreCase="false" /> 
    <conditions logicalGrouping="MatchAll"> 
     <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
     <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
    </conditions> 
    <action type="Rewrite" url="index.cfm/{PATH_INFO}" appendQueryString="true" logRewrittenUrl="true" /> 
</rule> 

Так вот вопрос:

Когда я иду в http://dev.dev/main/default - Это вызывает main.default

Когда я иду в http://dev.dev/main/seconditem - Это вызывает main.default не main.seconditem

Если я добавляю index.cfm обратно в :

Когда я иду на http://dev.dev/index.cfm/main/default - Он называет main.default

Когда я иду в http://dev.dev/index.cfm/main/seconditem - Он называет main.seconditem

Глядя на журналы мой IIS URL-адрес становится переписан включить index.cfm:

2014-02-19 23:13:44 GET /index.cfm/main/default - 80 
2014-02-19 23:13:53 GET /index.cfm/main/seconditem - 80 

Так на основе журналов IIS, рассказывающих мне перезапись работая, почему, когда я иду на URL-адрес без index.cfm, он всегда идет до main.default?

Я также попытался с различными контроллерами, где:

http://dev.dev/users/default - идет в main.default

но:

http://dev.dev/index.cfm/users/default - идет в users.default

И журналы IIS показать это для обоих запросы:

2014-02-19 23:20:47 GET /index.cfm/users - 80 
2014-02-19 23:21:37 GET /index.cfm/users - 80 

Любые идеи будут действительно оценили

ответ

3

Вот правило перезаписи я использую на FW/1 проект

<rule name="Imported Rule 1" stopProcessing="true"> 
     <match url="^(.*)$" /> 
     <conditions logicalGrouping="MatchAll"> 
      <add input="{REQUEST_FILENAME}" pattern="^((?!\.).)*$|(\.cfm)$" /> 
      <add input="{URL}" matchType="Pattern" pattern="/(assets|scratch|remote|index.cfm|extensions)" ignoreCase="true" negate="true" /> 
     </conditions> 
     <action type="Rewrite" url="/index.cfm/{R:1}" /> 
</rule> 

Второй <add> блок используется для отображения каталогов или файлов, которые я не хочу переписаны.

+0

Привет, Скотт, к сожалению, это не работает для меня. Я просто получаю ошибку 404 Not Found при доступе к чему-либо, кроме 'http: // dev.dev /'. Итак, переходим к 'http: // dev.dev/main/default' или' http: // dev.dev/main/seconditem' и бросаем 404.Я добавил 'logRewrittenUrl =" true "' к вашему правилу, а журналы IIS показывают 'GET/main/seconditem - 80', поэтому он не добавляет'/index.cfm/'вообще. –

+1

OK Я выяснил, что происходит, это заняло всего 2 дня :) Я не перезапустил программу настройки ColdFusion Web Server после установки последнего обновления. Поэтому я сделал это, и теперь все работает. Спасибо, что опубликовали правило перезаписи. –