mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-09-19 01:57:55 +08:00
Adding ImageResizer library
--HG-- branch : 1.x extra : rebase_source : 606c5b161a35f4ede53cfa8df9a08bbd8cb9386a
This commit is contained in:
BIN
lib/imageresizer/ImageResizer.dll
Normal file
BIN
lib/imageresizer/ImageResizer.dll
Normal file
Binary file not shown.
23
lib/imageresizer/license.txt
Normal file
23
lib/imageresizer/license.txt
Normal file
@@ -0,0 +1,23 @@
|
||||
Please visit the web page at
|
||||
http://imageresizing.net/licenses/
|
||||
|
||||
The core and 18 plugins are free and open-source, under a modified MIT license called the Freedom license.
|
||||
See http://imageresizing.net/licenses/freedom
|
||||
|
||||
The following DLLs are under the Freedom license:
|
||||
|
||||
* ImageResizer.dll
|
||||
* ImageResizer.Mvc.dll
|
||||
* ImageResizer.Plugins.Logging.dll
|
||||
|
||||
|
||||
Development of this project is funded by people purchasing Pro and Enterprise licenses
|
||||
to the 4 paid plugin bundles. Both Pro and Enterprise licenses are as MIT-like as possible,
|
||||
allowing redistribution, modification, and sub-licensing.
|
||||
|
||||
The free trial license permits use of the paid plugins for development and testing purposes, but not for production use.
|
||||
http://imageresizing.net/licenses/trial
|
||||
|
||||
Once you begin using them on a production server, you will need a Pro or Enterprise-wide license.
|
||||
|
||||
See http://imageresizing.net/plugins for information on buying licuenses.
|
@@ -1,12 +1,16 @@
|
||||
using System.Drawing;
|
||||
using System.Drawing.Imaging;
|
||||
using System.IO;
|
||||
|
||||
namespace Orchard.MediaProcessing.Descriptors.Filter {
|
||||
public class FilterContext {
|
||||
public dynamic State { get; set; }
|
||||
public Image Image { get; set; }
|
||||
public ImageFormat ImageFormat { get; set; }
|
||||
public Stream Media { get; set; }
|
||||
public string Format { get; set; }
|
||||
public string FilePath { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Whether the module should save the altered image or not.
|
||||
/// For instance if a filter saves the media then it should set it to<value>False</value>.
|
||||
/// </summary>
|
||||
public bool Saved { get; set; }
|
||||
}
|
||||
}
|
@@ -1,6 +1,6 @@
|
||||
Name: Media Processing
|
||||
AntiForgery: enabled
|
||||
Author: The Orchard Team
|
||||
Author: John Murdock, Sébastien Ros
|
||||
Website: http://orchardproject.net
|
||||
Version: 1.0
|
||||
OrchardVersion: 1.0
|
||||
|
@@ -46,6 +46,10 @@
|
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="ImageResizer">
|
||||
<HintPath>..\..\..\..\lib\imageresizer\ImageResizer.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
@@ -108,8 +112,9 @@
|
||||
<Compile Include="Models\FilterRecord.cs" />
|
||||
<Compile Include="Models\ImageProfilePart.cs" />
|
||||
<Compile Include="Models\ImageProfilePartRecord.cs" />
|
||||
<Compile Include="Providers\Filters\CropFilter.cs" />
|
||||
<Compile Include="Providers\Filters\ImageFormatFilter.cs" />
|
||||
<None Include="Providers\Filters\ConstrainFilter.cs" />
|
||||
<None Include="Providers\Filters\CropFilter.cs" />
|
||||
<None Include="Providers\Filters\ImageFormatFilter.cs" />
|
||||
<Compile Include="Providers\Filters\ResizeFilter.cs" />
|
||||
<Compile Include="Services\IImageFilterProvider.cs" />
|
||||
<Compile Include="Services\IImageProcessingFileNameProvider.cs" />
|
||||
|
@@ -0,0 +1,97 @@
|
||||
using System;
|
||||
using System.Web.Mvc;
|
||||
using ImageResizer;
|
||||
using Orchard.DisplayManagement;
|
||||
using Orchard.Forms.Services;
|
||||
using Orchard.Localization;
|
||||
using Orchard.MediaProcessing.Descriptors.Filter;
|
||||
using Orchard.MediaProcessing.Services;
|
||||
|
||||
namespace Orchard.MediaProcessing.Providers.Filters {
|
||||
public class ConstrainFilter : IImageFilterProvider {
|
||||
public ConstrainFilter() {
|
||||
T = NullLocalizer.Instance;
|
||||
}
|
||||
|
||||
public Localizer T { get; set; }
|
||||
|
||||
public void Describe(DescribeFilterContext describe) {
|
||||
describe.For("Transform", T("Transform"), T("Transform"))
|
||||
.Element("Constrain", T("Constrain"), T("Constrains the dimensions of an image either by with of by height"),
|
||||
ApplyFilter,
|
||||
DisplayFilter,
|
||||
"ContrainImageFilter"
|
||||
);
|
||||
}
|
||||
|
||||
public void ApplyFilter(FilterContext context) {
|
||||
var value = (int)context.State.Value;
|
||||
var axis = (string)context.State.Axis;
|
||||
|
||||
|
||||
|
||||
var settings = new ResizeSettings {
|
||||
Mode = FitMode.Max
|
||||
};
|
||||
|
||||
switch (axis) {
|
||||
case "width":
|
||||
settings.Width = value;
|
||||
break;
|
||||
case "height":
|
||||
settings.Height = value;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
context.Media = result;
|
||||
}
|
||||
|
||||
public LocalizedString DisplayFilter(FilterContext context) {
|
||||
var value = (int)context.State.Value;
|
||||
var axis = (string)context.State.Axis;
|
||||
|
||||
return axis == "height"
|
||||
? T("Constrain to {0}px high", value)
|
||||
: T("Constrain to {0}px wide", value);
|
||||
}
|
||||
}
|
||||
|
||||
public class ConstrainFilterFilterForms : IFormProvider {
|
||||
protected dynamic Shape { get; set; }
|
||||
public Localizer T { get; set; }
|
||||
|
||||
public ConstrainFilterFilterForms(
|
||||
IShapeFactory shapeFactory) {
|
||||
Shape = shapeFactory;
|
||||
T = NullLocalizer.Instance;
|
||||
}
|
||||
|
||||
public void Describe(DescribeContext context) {
|
||||
Func<IShapeFactory, object> form =
|
||||
shape => {
|
||||
var f = Shape.Form(
|
||||
Id: "ContrainImageFilter",
|
||||
_Axis: Shape.SelectList(
|
||||
Id: "axis", Name: "Axis",
|
||||
Title: T("Axis"),
|
||||
Size: 1,
|
||||
Multiple: false
|
||||
),
|
||||
_Height: Shape.Textbox(
|
||||
Id: "value", Name: "Value",
|
||||
Title: T("Value"),
|
||||
Description: T("The value in pixel the selected axis should be constrained to. Mandatory."),
|
||||
Classes: new[] {"text-small"})
|
||||
);
|
||||
|
||||
f._Axis.Add(new SelectListItem { Value = "height", Text = T("Height").Text });
|
||||
f._Axis.Add(new SelectListItem { Value = "width", Text = T("Width").Text });
|
||||
|
||||
return f;
|
||||
};
|
||||
|
||||
context.Form("ContrainImageFilter", form);
|
||||
}
|
||||
}
|
||||
}
|
@@ -25,28 +25,28 @@ namespace Orchard.MediaProcessing.Providers.Filters {
|
||||
|
||||
public void ApplyFilter(FilterContext context) {
|
||||
var newHeight = int.Parse(context.State.Height);
|
||||
newHeight = newHeight > 0 ? newHeight : context.Image.Height;
|
||||
var heightFactor = (float) context.Image.Height/newHeight;
|
||||
newHeight = newHeight > 0 ? newHeight : context.Media.Height;
|
||||
var heightFactor = (float) context.Media.Height/newHeight;
|
||||
|
||||
var newWidth = int.Parse(context.State.Width);
|
||||
newWidth = newWidth > 0 ? newWidth : context.Image.Width;
|
||||
var widthFactor = context.Image.Width/newWidth;
|
||||
newWidth = newWidth > 0 ? newWidth : context.Media.Width;
|
||||
var widthFactor = context.Media.Width/newWidth;
|
||||
|
||||
if (widthFactor != heightFactor) {
|
||||
if (widthFactor > heightFactor) {
|
||||
newHeight = Convert.ToInt32(context.Image.Height/widthFactor);
|
||||
newHeight = Convert.ToInt32(context.Media.Height/widthFactor);
|
||||
}
|
||||
else {
|
||||
newWidth = Convert.ToInt32(context.Image.Width/heightFactor);
|
||||
newWidth = Convert.ToInt32(context.Media.Width/heightFactor);
|
||||
}
|
||||
}
|
||||
|
||||
var newImage = new Bitmap(newWidth, newHeight);
|
||||
using (var graphics = Graphics.FromImage(newImage)) {
|
||||
graphics.DrawImage(context.Image, 0, 0, new Rectangle(0, 0, newWidth, newHeight), GraphicsUnit.Pixel);
|
||||
graphics.DrawImage(context.Media, 0, 0, new Rectangle(0, 0, newWidth, newHeight), GraphicsUnit.Pixel);
|
||||
}
|
||||
|
||||
context.Image = newImage;
|
||||
context.Media = newImage;
|
||||
}
|
||||
|
||||
public LocalizedString DisplayFilter(FilterContext context) {
|
||||
|
@@ -26,8 +26,8 @@ namespace Orchard.MediaProcessing.Providers.Filters {
|
||||
}
|
||||
|
||||
public void ApplyFilter(FilterContext context) {
|
||||
context.ImageFormat = ImageFormatConverter.ToImageFormat((ImageFormats)Enum.Parse(typeof (ImageFormats), (string)context.State.ImageFormat));
|
||||
context.FilePath = Path.ChangeExtension(context.FilePath, context.ImageFormat.ToString().ToLower());
|
||||
context.Format = ImageFormatConverter.ToImageFormat((ImageFormats)Enum.Parse(typeof (ImageFormats), (string)context.State.ImageFormat));
|
||||
context.FilePath = Path.ChangeExtension(context.FilePath, context.Format.ToString().ToLower());
|
||||
}
|
||||
|
||||
public LocalizedString DisplayFilter(FilterContext context) {
|
||||
|
@@ -1,6 +1,8 @@
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Drawing2D;
|
||||
using System.IO;
|
||||
using ImageResizer;
|
||||
using Orchard.DisplayManagement;
|
||||
using Orchard.Forms.Services;
|
||||
using Orchard.Localization;
|
||||
@@ -17,7 +19,7 @@ namespace Orchard.MediaProcessing.Providers.Filters {
|
||||
|
||||
public void Describe(DescribeFilterContext describe) {
|
||||
describe.For("Transform", T("Transform"), T("Transform"))
|
||||
.Element("Resize", T("Resize"), T("Resizes to a fixed height and width"),
|
||||
.Element("Resize", T("Resize"), T("Resizes using predefined height or width."),
|
||||
ApplyFilter,
|
||||
DisplayFilter,
|
||||
"ResizeFilter"
|
||||
@@ -25,32 +27,18 @@ namespace Orchard.MediaProcessing.Providers.Filters {
|
||||
}
|
||||
|
||||
public void ApplyFilter(FilterContext context) {
|
||||
var newHeight = int.Parse((string)context.State.Height);
|
||||
newHeight = newHeight > 0 ? newHeight : context.Image.Height;
|
||||
var heightFactor = (float) context.Image.Height/newHeight;
|
||||
int witdh = context.State.Width;
|
||||
int height = context.State.Height;
|
||||
|
||||
var newWidth = int.Parse((string)context.State.Width);
|
||||
newWidth = newWidth > 0 ? newWidth : context.Image.Width;
|
||||
var widthFactor = context.Image.Width/newWidth;
|
||||
var settings = new ResizeSettings {
|
||||
Mode = FitMode.Max,
|
||||
Height = height,
|
||||
Width = witdh
|
||||
};
|
||||
|
||||
if (widthFactor != heightFactor) {
|
||||
if (widthFactor > heightFactor) {
|
||||
newHeight = Convert.ToInt32(context.Image.Height/widthFactor);
|
||||
}
|
||||
else {
|
||||
newWidth = Convert.ToInt32(context.Image.Width/heightFactor);
|
||||
}
|
||||
}
|
||||
|
||||
var newImage = new Bitmap(newWidth, newHeight);
|
||||
using (var graphics = Graphics.FromImage(newImage)) {
|
||||
graphics.CompositingQuality = CompositingQuality.HighSpeed;
|
||||
graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
|
||||
graphics.CompositingMode = CompositingMode.SourceCopy;
|
||||
graphics.DrawImage(context.Image, 0, 0, newWidth, newHeight);
|
||||
}
|
||||
|
||||
context.Image = newImage;
|
||||
var result = new MemoryStream();
|
||||
ImageBuilder.Current.Build(context.Media, result, settings);
|
||||
context.Media = result;
|
||||
}
|
||||
|
||||
public LocalizedString DisplayFilter(FilterContext context) {
|
||||
@@ -73,16 +61,17 @@ namespace Orchard.MediaProcessing.Providers.Filters {
|
||||
shape => {
|
||||
var f = Shape.Form(
|
||||
Id: "ImageResizeFilter",
|
||||
_Height: Shape.Textbox(
|
||||
Id: "height", Name: "Height",
|
||||
Title: T("Height"),
|
||||
Description: T("The height in pixels, 0 to allow any value."),
|
||||
Classes: new[] {"text-small"}),
|
||||
_Width: Shape.Textbox(
|
||||
Id: "width", Name: "Width",
|
||||
Title: T("Width"),
|
||||
Description: T("The width in pixels, 0 to allow any value."),
|
||||
Classes: new[] {"text-small"}));
|
||||
Classes: new[] {"text-small"}),
|
||||
_Height: Shape.Textbox(
|
||||
Id: "height", Name: "Height",
|
||||
Title: T("Height"),
|
||||
Description: T("The height in pixels, 0 to allow any value."),
|
||||
Classes: new[] {"text-small"})
|
||||
);
|
||||
return f;
|
||||
};
|
||||
|
||||
|
@@ -1,10 +1,8 @@
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Web;
|
||||
using System.Web.Mvc;
|
||||
using Orchard.DisplayManagement;
|
||||
using Orchard.Environment;
|
||||
using Orchard.FileSystems.Media;
|
||||
@@ -13,7 +11,6 @@ using Orchard.Logging;
|
||||
using Orchard.MediaProcessing.Descriptors.Filter;
|
||||
using Orchard.MediaProcessing.Media;
|
||||
using Orchard.MediaProcessing.Services;
|
||||
using Orchard.Mvc.Html;
|
||||
using Orchard.Utility.Extensions;
|
||||
|
||||
namespace Orchard.MediaProcessing.Shapes {
|
||||
@@ -38,14 +35,14 @@ namespace Orchard.MediaProcessing.Shapes {
|
||||
[Shape]
|
||||
public void ImageUrl(dynamic Display, TextWriter Output, string Profile, string Path) {
|
||||
var filePath = _fileNameProvider.Value.GetFileName(Profile, Path);
|
||||
if (string.IsNullOrEmpty(filePath)) {
|
||||
if (string.IsNullOrEmpty(filePath) || _storageProvider.Value.GetFile(filePath) == null) {
|
||||
try {
|
||||
var profilePart = _profileService.Value.GetImageProfileByName(Profile);
|
||||
if (profilePart == null)
|
||||
return;
|
||||
|
||||
var image = GetImage(Path);
|
||||
var filterContext = new FilterContext {Image = image, ImageFormat = image.RawFormat, FilePath = _storageProvider.Value.Combine(Profile, CreateDefaultFileName(Path))};
|
||||
var filterContext = new FilterContext {Media = image, Format = new FileInfo(Path).Extension, FilePath = _storageProvider.Value.Combine(Profile, CreateDefaultFileName(Path))};
|
||||
foreach (var filter in profilePart.Filters.OrderBy(f => f.Position)) {
|
||||
var descriptor = _processingManager.Value.DescribeFilters().SelectMany(x => x.Descriptors).FirstOrDefault(x => x.Category == filter.Category && x.Type == filter.Type);
|
||||
if (descriptor == null)
|
||||
@@ -60,9 +57,20 @@ namespace Orchard.MediaProcessing.Shapes {
|
||||
_storageProvider.Value.TryCreateFolder(profilePart.Name);
|
||||
var newFile = _storageProvider.Value.OpenOrCreate(filterContext.FilePath);
|
||||
using (var imageStream = newFile.OpenWrite()) {
|
||||
filterContext.Image.Save(imageStream, filterContext.ImageFormat);
|
||||
using (var sw = new BinaryWriter(imageStream)) {
|
||||
filterContext.Media.Seek(0, SeekOrigin.Begin);
|
||||
using (var sr = new BinaryReader(filterContext.Media)) {
|
||||
int count;
|
||||
var buffer = new byte[1024];
|
||||
while ((count = sr.Read(buffer, 0, buffer.Length)) != 0) {
|
||||
sw.Write(buffer, 0, count);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
filterContext.Media.Dispose();
|
||||
filePath = filterContext.FilePath;
|
||||
}
|
||||
catch (Exception ex) {
|
||||
@@ -74,20 +82,20 @@ namespace Orchard.MediaProcessing.Shapes {
|
||||
}
|
||||
|
||||
// TODO: Update this method once the storage provider has been updated
|
||||
private Image GetImage(string path) {
|
||||
private Stream GetImage(string path) {
|
||||
// http://blob.storage-provider.net/my-image.jpg
|
||||
if (Uri.IsWellFormedUriString(path, UriKind.Absolute)) {
|
||||
var webClient = new WebClient();
|
||||
return new Bitmap(webClient.OpenRead(new Uri(path)));
|
||||
return webClient.OpenRead(new Uri(path));
|
||||
}
|
||||
// ~/Media/Default/images/my-image.jpg
|
||||
if (VirtualPathUtility.IsAppRelative(path)) {
|
||||
var webClient = new WebClient();
|
||||
return new Bitmap(webClient.OpenRead(new Uri(_services.Value.WorkContext.HttpContext.Request.Url, VirtualPathUtility.ToAbsolute(path))));
|
||||
return webClient.OpenRead(new Uri(_services.Value.WorkContext.HttpContext.Request.Url, VirtualPathUtility.ToAbsolute(path)));
|
||||
}
|
||||
// images/my-image.jpg
|
||||
var file = _storageProvider.Value.GetFile(path);
|
||||
return new Bitmap(file.OpenRead());
|
||||
return file.OpenRead();
|
||||
}
|
||||
|
||||
private static string CreateDefaultFileName(string path) {
|
||||
|
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Note: As an alternative to hand editing this file you can use the
|
||||
web admin tool to configure settings for your application. Use
|
||||
@@ -10,29 +10,57 @@
|
||||
<configuration>
|
||||
<configSections>
|
||||
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
|
||||
<remove name="host"/>
|
||||
<remove name="pages"/>
|
||||
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false"/>
|
||||
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false"/>
|
||||
<remove name="host" />
|
||||
<remove name="pages" />
|
||||
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
|
||||
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
|
||||
</sectionGroup>
|
||||
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" requirePermission="false"/>
|
||||
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" requirePermission="false" />
|
||||
</configSections>
|
||||
<appSettings>
|
||||
<add key="webpages:Enabled" value="false"/>
|
||||
<add key="log4net.Config" value="Config\log4net.config"/>
|
||||
|
||||
<add key="price.issue.us" value="4.95"/>
|
||||
<add key="price.issue.ca" value="6.95"/>
|
||||
<add key="price.issue.any" value="12.95"/>
|
||||
<add key="price.subscription.us" value="9.90"/>
|
||||
<add key="price.subscription.ca" value="13.9"/>
|
||||
<add key="price.subscription.any" value="25.90"/>
|
||||
<add key="price.vpaper.us" value="4.95"/>
|
||||
<add key="price.vpaper.ca" value="4.95"/>
|
||||
<add key="price.vpaper.any" value="4.95"/>
|
||||
<add key="payment.redirect.vpaper" value="http://www.myvirtualpaper.com/doc/destination-wedding/destination-i-do-magazine---summer-2012/2012060501/#0" />
|
||||
|
||||
<!-- staging settings -->
|
||||
<!--<add key="ClientValidationEnabled" value="true"/>
|
||||
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
|
||||
<add key="WepayAccessToken" value="STAGE_176a3ddc53821415dba83d037c327fdaa3e09483fed6c48c6c544cf4fd4cd1ed"/>
|
||||
<add key="WepayAccountId" value="132855832 "/>
|
||||
<add key="WepayClientSecret" value="976a2acc48 "/>
|
||||
<add key="WepayClientId" value="52222"/>
|
||||
<add key="ProductionMode" value="false" />-->
|
||||
<!-- production settings -->
|
||||
<add key="ClientValidationEnabled" value="true"/>
|
||||
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
|
||||
<add key="WepayAccessToken" value="PRODUCTION_2579019cf8e14cb60277bcbb47d13899aee63b75e821bb024bebe8a8d639672a"/>
|
||||
<add key="WepayAccountId" value="1614257476"/>
|
||||
<add key="WepayClientSecret" value="6aed3922a9"/>
|
||||
<add key="WepayClientId" value="199862"/>
|
||||
<add key="ProductionMode" value="true" />
|
||||
</appSettings>
|
||||
<system.web.webPages.razor>
|
||||
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
|
||||
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||
<pages pageBaseType="Orchard.Mvc.ViewEngines.Razor.WebViewPage">
|
||||
<namespaces>
|
||||
<add namespace="System.Web.Mvc"/>
|
||||
<add namespace="System.Web.Mvc.Ajax"/>
|
||||
<add namespace="System.Web.Mvc.Html"/>
|
||||
<add namespace="System.Web.Routing"/>
|
||||
<add namespace="System.Web.WebPages"/>
|
||||
<add namespace="System.Linq"/>
|
||||
<add namespace="System.Collections.Generic"/>
|
||||
<add namespace="Orchard.Mvc.Html"/>
|
||||
<add namespace="System.Web.Mvc" />
|
||||
<add namespace="System.Web.Mvc.Ajax" />
|
||||
<add namespace="System.Web.Mvc.Html" />
|
||||
<add namespace="System.Web.Routing" />
|
||||
<add namespace="System.Web.WebPages" />
|
||||
<add namespace="System.Linq" />
|
||||
<add namespace="System.Collections.Generic" />
|
||||
<add namespace="Orchard.Mvc.Html" />
|
||||
</namespaces>
|
||||
</pages>
|
||||
</system.web.webPages.razor>
|
||||
@@ -41,44 +69,44 @@
|
||||
is easier (default timeout is less than one minute)
|
||||
-->
|
||||
<system.transactions>
|
||||
<defaultSettings timeout="00:30:00"/>
|
||||
<defaultSettings timeout="00:30:00" />
|
||||
</system.transactions>
|
||||
<system.web>
|
||||
<!--<trust level="Medium" originUrl="" />-->
|
||||
<httpRuntime requestValidationMode="2.0"/>
|
||||
<httpRuntime requestValidationMode="2.0" />
|
||||
<!--
|
||||
Set compilation debug="true" to insert debugging
|
||||
symbols into the compiled page. Because this
|
||||
affects performance, set this value to true only
|
||||
during development.
|
||||
-->
|
||||
<compilation debug="true" targetFramework="4.0" batch="true" numRecompilesBeforeAppRestart="250" optimizeCompilations="true">
|
||||
<compilation debug="false" targetFramework="4.0" batch="true" numRecompilesBeforeAppRestart="250" optimizeCompilations="true">
|
||||
<buildProviders>
|
||||
<add extension=".csproj" type="Orchard.Environment.Extensions.Compilers.CSharpExtensionBuildProviderShim"/>
|
||||
<add extension=".csproj" type="Orchard.Environment.Extensions.Compilers.CSharpExtensionBuildProviderShim" />
|
||||
</buildProviders>
|
||||
<assemblies>
|
||||
<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"/>
|
||||
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"/>
|
||||
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"/>
|
||||
<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
|
||||
<remove assembly="System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
|
||||
<remove assembly="System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
|
||||
<remove assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
|
||||
<remove assembly="System.Web.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
|
||||
<remove assembly="System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
|
||||
<remove assembly="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
|
||||
<remove assembly="System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
|
||||
<remove assembly="System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
|
||||
<remove assembly="System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
|
||||
<remove assembly="System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
|
||||
<remove assembly="System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
|
||||
<remove assembly="System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
|
||||
<remove assembly="System.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
|
||||
<remove assembly="System.ServiceModel.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
|
||||
<remove assembly="System.WorkflowServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
|
||||
<remove assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
|
||||
<remove assembly="System.Data.DataSetExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
|
||||
<remove assembly="System.Web.ApplicationServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
|
||||
<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
|
||||
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
|
||||
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
|
||||
<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
|
||||
<remove assembly="System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<remove assembly="System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<remove assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<remove assembly="System.Web.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<remove assembly="System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<remove assembly="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<remove assembly="System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<remove assembly="System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<remove assembly="System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<remove assembly="System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<remove assembly="System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||
<remove assembly="System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||
<remove assembly="System.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||
<remove assembly="System.ServiceModel.Activities, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||
<remove assembly="System.WorkflowServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||
<remove assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||
<remove assembly="System.Data.DataSetExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<remove assembly="System.Web.ApplicationServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
|
||||
</assemblies>
|
||||
</compilation>
|
||||
<!--
|
||||
@@ -87,8 +115,9 @@
|
||||
ASP.NET to identify an incoming user.
|
||||
-->
|
||||
<authentication mode="Forms">
|
||||
<forms loginUrl="~/Users/Account/AccessDenied" timeout="2880"/>
|
||||
<forms loginUrl="~/Users/Account/AccessDenied" timeout="60" />
|
||||
</authentication>
|
||||
<sessionState timeout="60" />
|
||||
<!--
|
||||
The <customErrors> section enables configuration
|
||||
of what to do if/when an unhandled error occurs
|
||||
@@ -96,25 +125,29 @@
|
||||
it enables developers to configure html error pages
|
||||
to be displayed in place of a error stack trace.
|
||||
-->
|
||||
<customErrors mode="RemoteOnly"/>
|
||||
<customErrors mode="Off" />
|
||||
<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID">
|
||||
<namespaces>
|
||||
<add namespace="System.Web.Mvc"/>
|
||||
<add namespace="System.Web.Mvc.Ajax"/>
|
||||
<add namespace="System.Web.Mvc.Html"/>
|
||||
<add namespace="System.Web.Routing"/>
|
||||
<add namespace="System.Linq"/>
|
||||
<add namespace="System.Collections.Generic"/>
|
||||
<add namespace="Orchard.Mvc.Html"/>
|
||||
<add namespace="System.Web.Mvc" />
|
||||
<add namespace="System.Web.Mvc.Ajax" />
|
||||
<add namespace="System.Web.Mvc.Html" />
|
||||
<add namespace="System.Web.Routing" />
|
||||
<add namespace="System.Linq" />
|
||||
<add namespace="System.Collections.Generic" />
|
||||
<add namespace="Orchard.Mvc.Html" />
|
||||
</namespaces>
|
||||
</pages>
|
||||
<httpHandlers>
|
||||
<!-- see below -->
|
||||
<clear/>
|
||||
<add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
|
||||
<clear />
|
||||
<!-- This section registers some static files to be served
|
||||
<add path="robots.txt" verb="GET" type="System.Web.StaticFileHandler" />
|
||||
<add path="sitemap.xml" verb="GET" type="System.Web.StaticFileHandler" />
|
||||
-->
|
||||
<add path="*" verb="*" type="System.Web.HttpNotFoundHandler" />
|
||||
</httpHandlers>
|
||||
<httpModules>
|
||||
<add name="WarmupHttpModule" type="Orchard.WarmupStarter.WarmupHttpModule, Orchard.WarmupStarter, Version=1.0.20, Culture=neutral"/>
|
||||
<add name="WarmupHttpModule" type="Orchard.WarmupStarter.WarmupHttpModule, Orchard.WarmupStarter, Version=1.0.20, Culture=neutral" />
|
||||
</httpModules>
|
||||
</system.web>
|
||||
<!--
|
||||
@@ -122,61 +155,282 @@
|
||||
Information Services 7.0. It is not necessary for previous version of IIS.
|
||||
-->
|
||||
<system.webServer>
|
||||
<validation validateIntegratedModeConfiguration="false"/>
|
||||
<modules runAllManagedModulesForAllRequests="true">
|
||||
<remove name="WarmupHttpModule"/>
|
||||
<add name="WarmupHttpModule" type="Orchard.WarmupStarter.WarmupHttpModule, Orchard.WarmupStarter, Version=1.0.20, Culture=neutral"/>
|
||||
<staticContent>
|
||||
<mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
|
||||
</staticContent>
|
||||
<validation validateIntegratedModeConfiguration="false" />
|
||||
<modules runAllManagedModulesForAllRequests="false">
|
||||
<remove name="WarmupHttpModule" />
|
||||
<add name="WarmupHttpModule" type="Orchard.WarmupStarter.WarmupHttpModule, Orchard.WarmupStarter, Version=1.0.20, Culture=neutral" />
|
||||
</modules>
|
||||
<handlers accessPolicy="Script">
|
||||
<!-- clear all handlers, prevents executing code file extensions, prevents returning any file contents -->
|
||||
<clear/>
|
||||
<clear />
|
||||
<!-- This section registers some static files to be served
|
||||
<add name="Robots" path="robots.txt" verb="GET" modules="StaticFileModule" preCondition="integratedMode" resourceType="File" requireAccess="Read" />
|
||||
<add name="SiteMap" path="sitemap.xml" verb="GET" modules="StaticFileModule" preCondition="integratedMode" resourceType="File" requireAccess="Read" />
|
||||
-->
|
||||
<!-- Return 404 for all requests via managed handler. The url routing handler will substitute the mvc request handler when routes match. -->
|
||||
<add name="NotFound" path="*" verb="*" type="System.Web.HttpNotFoundHandler" preCondition="integratedMode" requireAccess="Script"/>
|
||||
<add name="NotFound" path="*" verb="*" type="System.Web.HttpNotFoundHandler" preCondition="integratedMode" requireAccess="Script" />
|
||||
<!-- WebApi -->
|
||||
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit"/>
|
||||
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit"/>
|
||||
<remove name="ExtensionlessUrlHandler-Integrated-4.0"/>
|
||||
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0"/>
|
||||
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0"/>
|
||||
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0"/>
|
||||
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
|
||||
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
|
||||
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
|
||||
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
|
||||
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
|
||||
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
|
||||
</handlers>
|
||||
<!-- Prevent IIS 7.0 from returning a custom 404/500 error page of its own -->
|
||||
<httpErrors existingResponse="PassThrough"/>
|
||||
<httpErrors existingResponse="PassThrough" />
|
||||
|
||||
<rewrite>
|
||||
<rules>
|
||||
<rule name="AWS entrance" stopProcessing="true">
|
||||
<match url="(.*$)" ignoreCase="true" />
|
||||
<conditions>
|
||||
<add input="{HTTP_HOST}" pattern="destination.azurewebsites.net" />
|
||||
</conditions>
|
||||
</rule>
|
||||
|
||||
<rule name="to 'about us'" stopProcessing="true">
|
||||
<match url="^(the_destination_wedding_magazine)|(about_mag)/?$" ignoreCase="true" />
|
||||
<action type="Redirect" url="http://destinationido.com/about-us" redirectType="Permanent" />
|
||||
</rule>
|
||||
|
||||
<rule name="to 'articles'" stopProcessing="true">
|
||||
<match url="^(featured_articles)/?$" ignoreCase="true" />
|
||||
<action type="Redirect" url="http://destinationido.com/articles" redirectType="Permanent" />
|
||||
</rule>
|
||||
|
||||
<rule name="to 'home'" stopProcessing="true">
|
||||
<match url="^(buzz)|(testimonials)/?$" ignoreCase="true" />
|
||||
<action type="Redirect" url="http://destinationido.com" redirectType="Permanent" />
|
||||
</rule>
|
||||
|
||||
<rule name="to 'subscription'" stopProcessing="true">
|
||||
<match url="^(subscribe)|(magazine_subscription)/?$" ignoreCase="true" />
|
||||
<action type="Redirect" url="http://destinationido.com/subscription" redirectType="Permanent" />
|
||||
</rule>
|
||||
|
||||
<rule name="to 'back issues'" stopProcessing="true">
|
||||
<match url="^(order_backissues)/?$" ignoreCase="true" />
|
||||
<action type="Redirect" url="http://destinationido.com/back-issues" redirectType="Permanent" />
|
||||
</rule>
|
||||
|
||||
<rule name="to 'sign up'" stopProcessing="true">
|
||||
<match url="^(sign_up)/?$" ignoreCase="true" />
|
||||
<action type="Redirect" url="http://destinationido.com/sign-up" redirectType="Permanent" />
|
||||
</rule>
|
||||
|
||||
<rule name="to 'contact form'" stopProcessing="true">
|
||||
<match url="^(request_adrates)/?$" ignoreCase="true" />
|
||||
<action type="Redirect" url="http://destinationido.com/contact-form" redirectType="Permanent" />
|
||||
</rule>
|
||||
|
||||
<rule name="to 'advertise'" stopProcessing="true">
|
||||
<match url="^(media_kit)/?$" ignoreCase="true" />
|
||||
<action type="Redirect" url="http://destinationido.com/advertise" redirectType="Permanent" />
|
||||
</rule>
|
||||
|
||||
<rule name="to 'contact-us1'" stopProcessing="true">
|
||||
<match url="^contact/?$" ignoreCase="true" />
|
||||
<action type="Redirect" url="http://destinationido.com/contact-us" redirectType="Permanent" />
|
||||
</rule>
|
||||
|
||||
<rule name="to 'contact-us2'" stopProcessing="true">
|
||||
<match url="^contact_us/?$" ignoreCase="true" />
|
||||
<action type="Redirect" url="http://destinationido.com/contact-us" redirectType="Permanent" />
|
||||
</rule>
|
||||
|
||||
<rule name="to 'submission-guidelines'" stopProcessing="true">
|
||||
<match url="^(submission_guidelines)/?$" ignoreCase="true" />
|
||||
<action type="Redirect" url="http://destinationido.com/submission-guidelines" redirectType="Permanent" />
|
||||
</rule>
|
||||
|
||||
<rule name="to 'blog'" stopProcessing="true">
|
||||
<match url="^(_the_blog)/?$" ignoreCase="true" />
|
||||
<action type="Redirect" url="http://destinationido.com/blog" redirectType="Permanent" />
|
||||
</rule>
|
||||
|
||||
<rule name="Blog /blog" stopProcessing="true">
|
||||
<match url="(.*)/?$" ignoreCase="true" />
|
||||
<conditions>
|
||||
<add input="{HTTP_HOST}" pattern="destinationidoblog.com" />
|
||||
</conditions>
|
||||
<action type="Redirect" url="http://destinationido.com/blog/{R:1}" redirectType="Permanent" />
|
||||
</rule>
|
||||
|
||||
<rule name="Remove trailing slash or .html" stopProcessing="true">
|
||||
<match url="(.*)/$" />
|
||||
<conditions>
|
||||
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
|
||||
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
|
||||
</conditions>
|
||||
<action type="Redirect" redirectType="Permanent" url="{R:1}" />
|
||||
</rule>
|
||||
|
||||
<rule name="Remove trailing .html" stopProcessing="true">
|
||||
<match url="(.*)\.html$" />
|
||||
<conditions>
|
||||
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
|
||||
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
|
||||
</conditions>
|
||||
<action type="Redirect" redirectType="Permanent" url="{R:1}" />
|
||||
</rule>
|
||||
|
||||
<rule name="to 'did'" stopProcessing="true">
|
||||
<match url="^(did)/?$" ignoreCase="true" />
|
||||
<action type="Redirect" url="http://destinationido.com/" redirectType="Permanent" />
|
||||
</rule>
|
||||
|
||||
<rule name="quick facts antigua" stopProcessing="true">
|
||||
<match url="^Quick_Facts/Antigua_and_Barbuda/?$" ignoreCase="true" />
|
||||
<action type="Redirect" url="http://destinationido.com/antigua-and-barbuda" redirectType="Permanent" />
|
||||
</rule>
|
||||
|
||||
<rule name="quick facts big-islan" stopProcessing="true">
|
||||
<match url="^Quick_Facts/Big_Island_of_Hawaii/?$" ignoreCase="true" />
|
||||
<action type="Redirect" url="http://destinationido.com/big-island-of-hawaii" redirectType="Permanent" />
|
||||
</rule>
|
||||
|
||||
<rule name="quick facts british-virginia" stopProcessing="true">
|
||||
<match url="^Quick_Facts/British_Virgin_Islands/?$" ignoreCase="true" />
|
||||
<action type="Redirect" url="http://destinationido.com/british-virgin-islands" redirectType="Permanent" />
|
||||
</rule>
|
||||
|
||||
<rule name="quick facts cayman" stopProcessing="true">
|
||||
<match url="^Quick_Facts/Cayman_Islands/?$" ignoreCase="true" />
|
||||
<action type="Redirect" url="http://destinationido.com/cayman-islands-2" redirectType="Permanent" />
|
||||
</rule>
|
||||
|
||||
<rule name="quick facts cayman" stopProcessing="true">
|
||||
<match url="^Quick_Facts/Dominican_Republic/?$" ignoreCase="true" />
|
||||
<action type="Redirect" url="http://destinationido.com/Dominican-Republic" redirectType="Permanent" />
|
||||
</rule>
|
||||
|
||||
<rule name="quick great britain" stopProcessing="true">
|
||||
<match url="^Quick_Facts/Great_Britain/?$" ignoreCase="true" />
|
||||
<action type="Redirect" url="http://destinationido.com/great-britain" redirectType="Permanent" />
|
||||
</rule>
|
||||
|
||||
<rule name="quick new mexico" stopProcessing="true">
|
||||
<match url="^Quick_Facts/New_Mexico/?$" ignoreCase="true" />
|
||||
<action type="Redirect" url="http://destinationido.com/new-mexico" redirectType="Permanent" />
|
||||
</rule>
|
||||
|
||||
<rule name="quick new york" stopProcessing="true">
|
||||
<match url="^Quick_Facts/New_York/?$" ignoreCase="true" />
|
||||
<action type="Redirect" url="http://destinationido.com/new-york" redirectType="Permanent" />
|
||||
</rule>
|
||||
|
||||
<rule name="quick new zealand" stopProcessing="true">
|
||||
<match url="^Quick_Facts/New_Zealand/?$" ignoreCase="true" />
|
||||
<action type="Redirect" url="http://destinationido.com/new-zealand" redirectType="Permanent" />
|
||||
</rule>
|
||||
|
||||
<rule name="quick new jersey" stopProcessing="true">
|
||||
<match url="^Quick_Facts/New_Jersey/?$" ignoreCase="true" />
|
||||
<action type="Redirect" url="http://destinationido.com/new-jersey" redirectType="Permanent" />
|
||||
</rule>
|
||||
|
||||
<rule name="quick fact North_Carolina" stopProcessing="true">
|
||||
<match url="^Quick_Facts/North_Carolina/?$" ignoreCase="true" />
|
||||
<action type="Redirect" url="http://destinationido.com/north-carolina" redirectType="Permanent" />
|
||||
</rule>
|
||||
|
||||
<rule name="quick fact Nova_Scotia" stopProcessing="true">
|
||||
<match url="^Quick_Facts/Nova_Scotia/?$" ignoreCase="true" />
|
||||
<action type="Redirect" url="http://destinationido.com/nova-scotia" redirectType="Permanent" />
|
||||
</rule>
|
||||
|
||||
<rule name="quick fact Puerto_Rico" stopProcessing="true">
|
||||
<match url="^Quick_Facts/Puerto_Rico/?$" ignoreCase="true" />
|
||||
<action type="Redirect" url="http://destinationido.com/puerto-rico" redirectType="Permanent" />
|
||||
</rule>
|
||||
|
||||
<rule name="quick fact Rhode_Island" stopProcessing="true">
|
||||
<match url="^Quick_Facts/Rhode_Island/?$" ignoreCase="true" />
|
||||
<action type="Redirect" url="http://destinationido.com/rhode-island" redirectType="Permanent" />
|
||||
</rule>
|
||||
|
||||
<rule name="quick fact St._Kitts" stopProcessing="true">
|
||||
<match url="^Quick_Facts/St\._Kitts/?$" ignoreCase="true" />
|
||||
<action type="Redirect" url="http://destinationido.com/st-kitts" redirectType="Permanent" />
|
||||
</rule>
|
||||
|
||||
<rule name="quick fact St._Lucia" stopProcessing="true">
|
||||
<match url="^Quick_Facts/St\._Lucia/?$" ignoreCase="true" />
|
||||
<action type="Redirect" url="http://destinationido.com/st-lucia" redirectType="Permanent" />
|
||||
</rule>
|
||||
|
||||
<rule name="quick fact _Vincent_the_Grenadines" stopProcessing="true">
|
||||
<match url="^Quick_Facts/St\._Vincent_&_the_Grenadines/?$" ignoreCase="true" />
|
||||
<action type="Redirect" url="http://destinationido.com/st-vincent-the-grenadines" redirectType="Permanent" />
|
||||
</rule>
|
||||
|
||||
<rule name="quick fact Turcs_and_Caicos" stopProcessing="true">
|
||||
<match url="^Quick_Facts/Turcs_and_Caicos/?$" ignoreCase="true" />
|
||||
<action type="Redirect" url="http://destinationido.com/turcs-and-caicos" redirectType="Permanent" />
|
||||
</rule>
|
||||
|
||||
<rule name="quick fact US_Virgin_Islands" stopProcessing="true">
|
||||
<match url="^Quick_Facts/US_Virgin_Islands/?$" ignoreCase="true" />
|
||||
<action type="Redirect" url="http://destinationido.com/us-virgin-islands" redirectType="Permanent" />
|
||||
</rule>
|
||||
|
||||
<rule name="quick facts" stopProcessing="true">
|
||||
<match url="^Quick_Facts/([^/]*)/?$" ignoreCase="true" />
|
||||
<action type="Redirect" url="http://destinationido.com/{R:1}" redirectType="Permanent" />
|
||||
</rule>
|
||||
|
||||
<rule name="Domain Name Check">
|
||||
<match url="(.*$)" ignoreCase="true" />
|
||||
<conditions>
|
||||
<add input="{HTTP_HOST}" negate="true" pattern="destinationido.com" />
|
||||
</conditions>
|
||||
<action type="Redirect" url="http://destinationido.com/{R:1}" redirectType="Permanent" />
|
||||
</rule>
|
||||
|
||||
|
||||
</rules>
|
||||
</rewrite>
|
||||
|
||||
|
||||
</system.webServer>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<probing privatePath="App_Data/Dependencies"/>
|
||||
<probing privatePath="App_Data/Dependencies" />
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0"/>
|
||||
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0"/>
|
||||
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Razor" publicKeyToken="31bf3856ad364e35"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0"/>
|
||||
<assemblyIdentity name="System.Web.Razor" publicKeyToken="31bf3856ad364e35" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0"/>
|
||||
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.WebPages.Deployment" publicKeyToken="31bf3856ad364e35"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0"/>
|
||||
<assemblyIdentity name="System.Web.WebPages.Deployment" publicKeyToken="31bf3856ad364e35" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0"/>
|
||||
<assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="NHibernate" publicKeyToken="aa95f207798dfdb4" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-3.3.1.4000" newVersion="3.3.1.4000"/>
|
||||
<assemblyIdentity name="NHibernate" publicKeyToken="aa95f207798dfdb4" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-3.3.1.4000" newVersion="3.3.1.4000" />
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Autofac" publicKeyToken="17863af14b0044da"/>
|
||||
<bindingRedirect oldVersion="2.2.0.0-2.6.3.862" newVersion="2.6.3.862"/>
|
||||
<assemblyIdentity name="Autofac" publicKeyToken="17863af14b0044da" />
|
||||
<bindingRedirect oldVersion="2.2.0.0-2.6.3.862" newVersion="2.6.3.862" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
|
Reference in New Issue
Block a user