Вот общие правила, которые я добавляю в свой локальный файл web.config
.
<rule name="301 Redirects for ColdFusion">
<match url=".*" />
<conditions>
<add input="{ColdFusion301:{REQUEST_URI}}" pattern="(.+)" />
</conditions>
<action type="Redirect" url="{C:1}" appendQueryString="false" redirectType="Permanent" />
</rule>
<rule name="302 Redirects for ColdFusion">
<match url=".*" />
<conditions>
<add input="{ColdFusion302:{REQUEST_URI}}" pattern="(.+)" />
</conditions>
<action type="Redirect" url="{C:1}" appendQueryString="false" redirectType="Temporary" />
</rule>
Затем вам нужно добавить временные и постоянные правила перенаправления в отдельный файл rewritemaps.config
. Мой стартовый файл выглядит так, по крайней мере, с одним (1) правилом ключ/значение.
<rewriteMaps>
<rewriteMap name="ColdFusion301">
<add key="/sample301" value="/" />
<add key="/old_coffee.htm" value="/coffee.htm" />
<add key="/Gifts/" value="/shop/" />
<add key="/Gifts" value="/shop/" />
</rewriteMap>
<rewriteMap name="ColdFusion302">
<add key="/sample302" value="/" />
</rewriteMap>
</rewriteMaps>
Вы можете создать этот файл, используя несколько методов. Я написал CustomTag для разбора XML-файла, отображения значений в редакторе, а затем перезаписал данные обратно в XML-файл.
Чтобы IIS увидел обновленные правила, вам нужно «коснуться» dateLastModified файла web.config
. Вы можете сделать это, используя setFileDate UDF setFileDate("#Rootdir#web.config", Now())
.
http://www.cflib.org/udf/setFileDate
function setFileDate(filename){
var newDate = Now();
if (ArrayLen(Arguments) GTE 2) { newDate = arguments[2]; }
if (not isdate(newDate)) { return false; }
else if (newDate LT '1/1/1970') { return false; }
if (not fileExists(filename)) { return false; }
newDate = DateDiff("s", DateConvert("utc2Local", "January 1 1970 00:00"), newDate) * 1000;
return CreateObject("java","java.io.File").init(JavaCast("string",filename)).setLastModified(newDate);
}
30.10.2015