.Net: Create the "RewriteRules.config" file and refer the file in "Web.config"
SXA/Sitecore: Create the "RewriteRules.config" file and refer the file in "Web.config" from CD environment.
RewriteRules.config
<?xml version="1.0" encoding="utf-8"?>
<rules>
<!-- https://blog.coates.dk/2018/01/15/lower-casing-rewrite-rules-breaks-the-sitecore-client/ -->
<!--This is used for XP SCALED-->
<rule name="LowerCaseRule - not including querystring" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{PATH_INFO}" pattern=".*[A-Z]" ignoreCase="false" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />
<add input="{REQUEST_URI}" pattern="^/(sitecore)" negate="true" />
<add input="{REQUEST_URI}" pattern="^/(sitecore modules)" negate="true" />
<add input="{REQUEST_URI}" pattern="^/-/" negate="true" />
<add input="{REQUEST_URI}" pattern=".*(-/media).*" negate="true" />
<add input="{REQUEST_URI}" pattern=".*(~/media).*" negate="true" />
<add input="{REQUEST_URI}" pattern=".*(~/icon).*" negate="true" />
<add input="{REQUEST_URI}" pattern="WebResource.axd" negate="true" />
<add input="{REQUEST_URI}" pattern="ScriptResource.axd" negate="true" />
<add input="{REQUEST_URI}" pattern="jsnlog.logger" negate="true" />
<add input="{REQUEST_URI}" pattern="Telerik.Web.UI.WebResource.axd" negate="true" />
<add input="{REQUEST_METHOD}" matchType="Pattern" pattern="POST" ignoreCase="true" negate="true" />
<add input="{REQUEST_URI}" pattern="^/(identity)" negate="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{ToLower:{R:1}}" appendQueryString="true" redirectType="Permanent" />
</rule>
<!--Added Sitecore OOTB rules here - So, XML Transforms work better and we manage all rewrite rules at single place-->
<rule name="RemoveTrailingSlashRule1" stopProcessing="true">
<match url="(.*)/$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
</conditions>
<action type="Redirect" url="{R:1}" />
</rule>
<rule name="Block Sitecore Access Rule" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{URL}" pattern="^/sitecore/?.*" />
<add input="{URL}" pattern="^/sitecore/service/?.*" negate="true" />
<add input="{URL}" pattern="^/(sitecore modules)" negate="true" />
</conditions>
<action type="CustomResponse" statusCode="403" statusReason="Forbidden" statusDescription="The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable." />
</rule>
<rule name="Remove en-us" stopProcessing="true">
<match url=".*(en-us)(.*)" />
<action type="Redirect" url="https://{HTTP_HOST}{R:2}" appendQueryString="true" redirectType="Permanent" />
</rule>
<rule name="replace space with hyphen-5" stopProcessing="true">
<match url="^(.*) (.*) (.*) (.*) (.*) (.*).*$" ignoreCase="false" />
<conditions>
<add input="{URL}" pattern="^/(sitecore modules)" negate="true" />
</conditions>
<action url="https://{HTTP_HOST}/{R:1}-{R:2}-{R:3}-{R:4}-{R:5}-{R:6}" type="Redirect" appendQueryString="true" redirectType="Permanent" />
</rule>
<rule name="replace space with hyphen-4" stopProcessing="true">
<match url="^(.*) (.*) (.*) (.*) (.*).*$" ignoreCase="false" />
<conditions>
<add input="{URL}" pattern="^/(sitecore modules)" negate="true" />
</conditions>
<action url="https://{HTTP_HOST}/{R:1}-{R:2}-{R:3}-{R:4}-{R:5}" type="Redirect" appendQueryString="true" redirectType="Permanent" />
</rule>
<rule name="replace space with hyphen-3" stopProcessing="true">
<match url="^(.*) (.*) (.*) (.*).*$" ignoreCase="false" />
<conditions>
<add input="{URL}" pattern="^/(sitecore modules)" negate="true" />
</conditions>
<action url="https://{HTTP_HOST}/{R:1}-{R:2}-{R:3}-{R:4}" type="Redirect" appendQueryString="true" redirectType="Permanent" />
</rule>
<rule name="replace space with hyphen-2" stopProcessing="true">
<match url="^(.*) (.*) (.*).*$" ignoreCase="false" />
<conditions>
<add input="{URL}" pattern="^/(sitecore modules)" negate="true" />
</conditions>
<action url="https://{HTTP_HOST}/{R:1}-{R:2}-{R:3}" type="Redirect" appendQueryString="true" redirectType="Permanent" />
</rule>
<rule name="replace space with hyphen-1" stopProcessing="true">
<match url="^(.*) (.*).*$" ignoreCase="false" />
<conditions>
<add input="{URL}" pattern="^/(sitecore modules)" negate="true" />
</conditions>
<action url="https://{HTTP_HOST}/{R:1}-{R:2}" type="Redirect" appendQueryString="true" redirectType="Permanent" />
</rule>
</rules>
No comments:
Post a Comment