Saturday, 15 July 2017

Url Rewritting using Web Configuration example

<?xml version="1.0"?>

<configuration>
<configSections>
<section name="rewriter" requirePermission="false" type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter"/>
</configSections>
<connectionStrings>
    <add name="connectionstring" connectionString="Data Source=193.14.210.32,2879; Initial Catalog=Sampledb; User ID=Sample; Password=Sample123"/>
    <add name="connectionstring1" connectionString="Data Source=Shushant-PC\SA;Initial Catalog=Sampledb;Integrated Security=True"/>  
</connectionStrings>

<system.web>
<urlMappings enabled="true">
<add url="~/home" mappedUrl="~/Default.aspx"/>
      <add url="~/about-us" mappedUrl="~/AboutUs.aspx"/>
      <add url="~/our-mission" mappedUrl="~/OurMission.aspx"/>
      <add url="~/events" mappedUrl="~/Events.aspx"/>
      <add url="~/contact-us" mappedUrl="~/ContactUs.aspx"/>
      <add url="~/privacy-policy" mappedUrl="~/PrivacyPolicy.aspx"/>
      <add url="~/sitemap" mappedUrl="~/Sitemap.aspx"/>
</urlMappings>

<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
</assemblies>
</compilation>
<httpRuntime requestValidationMode="2.0" maxRequestLength="2097151"/>
<pages buffer="true" validateRequest="false" enableViewStateMac="false" viewStateEncryptionMode="Never" />
<authentication mode="Forms"/>

<membership>
<providers>
<clear/>
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
applicationName="/" />
</providers>
</membership>

<profile>
<providers>
<clear/>
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/>
</providers>
</profile>

<roleManager enabled="false">
<providers>
<clear/>
<add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" />
<add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
</providers>
</roleManager>

<sessionState mode="InProc" timeout="300"></sessionState>
<customErrors mode="Off"></customErrors>
<!--<customErrors mode="On"  defaultRedirect="Error404Page.aspx" ></customErrors>-->
<httpModules>
<add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter"/>
</httpModules>
</system.web>

<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true">
<add name="UrlRewriter"  type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter" />
</modules>
<rewrite>
<rules>

<clear/>
<rule name="staticos" patternSyntax="Wildcard" stopProcessing="true">
<match url="*.js"/>
<conditions logicalGrouping="MatchAll" trackAllCaptures="false"/>
<action type="None"/>
</rule>
<rule name="txt resources" stopProcessing="true">
<match url="(.+)\.txt$"/>
<conditions logicalGrouping="MatchAll" trackAllCaptures="false"/>
</rule>
<rule name="aspx resources" stopProcessing="true">
<match url="(.+)\.aspx$"/>
<conditions logicalGrouping="MatchAll" trackAllCaptures="false"/>
</rule>
<rule name="html resources" stopProcessing="true">
<match url="(.+)\.html$"/>
<conditions logicalGrouping="MatchAll" trackAllCaptures="false"/>
</rule>
<rule name="xml resources" stopProcessing="true">
<match url="(.+)\.xml$"/>
<conditions logicalGrouping="MatchAll" trackAllCaptures="false"/>
</rule>
<rule name="asp resources" stopProcessing="true">
<match url="(.+)\.asp$"/>
<conditions logicalGrouping="MatchAll" trackAllCaptures="false"/>
</rule>
<rule name="htm resources" stopProcessing="true">
<match url="(.+)\.htm$"/>
<conditions logicalGrouping="MatchAll" trackAllCaptures="false"/>
</rule>
<rule name="jpg resources" stopProcessing="true">
<match url="(.+)\.jpg$"/>
<conditions logicalGrouping="MatchAll" trackAllCaptures="false"/>
</rule>
<rule name="png resources" stopProcessing="true">
<match url="(.+)\.png$"/>
<conditions logicalGrouping="MatchAll" trackAllCaptures="false"/>
</rule>
<rule name="axd resources" stopProcessing="true">
<match url="(.+)\.axd$"/>
<conditions logicalGrouping="MatchAll" trackAllCaptures="false"/>
</rule>
<rule name="~ home ~" stopProcessing="true">
<match url=".*execute.xml"/>
<action type="None"/>
</rule>
<rule name="Pages" stopProcessing="true">
<match url="^([^/]+)$"/>
<conditions logicalGrouping="MatchAll" trackAllCaptures="false"/>
<action type="Rewrite" url="{R:1}.aspx" appendQueryString="true"/>
</rule>

<rule name="Redirect goindia.in to www" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions>
<add input="{HTTP_HOST}" pattern="goindia.in" />
</conditions>
<action type="Redirect" url="http://www.goindia.in/{R:0}" />
</rule>
</rules>
</rewrite>

</system.webServer>
<rewriter>
<rewrite url="^(/.+(\.gif|\.png|\.jpg|\.ico|\.xml|\.pdf|\.axd|\.css|\.js)(\?.+)?)$" to="$1" processing="stop" />

    <rewrite url="~/event/(.+)/(.+)" to="~/EventDescription.aspx?name=$1&amp;event_id=$2"/>
    <rewrite url="~/product-subcategory/(.+)/(.+)/(.+)/(.+)" to="~/product_lisiting_category.aspx?category_name=$1&amp;subcategory_name=$2&amp;category_id=$3&amp;subcategory_id=$4"/>
    <rewrite url="~/product-description/(.+)/(.+)/(.+)/(.+)/(.+)/(.+)" to="~/product_lisiting_category_description.aspx?category_name=$1&amp;subcategory_name=$2&amp;product_name=$3&amp;product_id=$4&amp;subcategory_id=$5&amp;category_id=$6"/>
    <rewrite url="~/blog-description/(.+)/(.+)/(.+)/(.+)" to="~/blog_description.aspx?Title=$1&amp;blog_category_name=$2&amp;blog_category_id=$3&amp;BlogID=$4" />
    <rewrite url="~/blog-listing/(.+)/(.+)" to="~/blog_listing.aspx?blog_category_name=$1&amp;blog_category_id=$2" />

  </rewriter>
</configuration>
----------------------------------------------------------------------------------------------------------------
Connection String



Url Rewritting without parameters 



Url Rewritting with parameters




Example of get Url :

In design page of Listing, listing is shown in using Listview as given below : 

<table width="984px" border="0" cellspacing="0" cellpadding="0" align="center">
                                <tr>
                                    <td width="984px" style="padding-left: 10px;">
                                        <table width="984px" border="0" cellspacing="0" cellpadding="0" align="center">
                                            <tr>
                                                <td>
                                                    <asp:ListView ID="ListView_Event" runat="server" GroupItemCount="4">
                                                        <EmptyDataTemplate>
                                                            <tr>
                                                                <td align="center" style="color: Red" width="100%" class="border2">
                                                                    Sorry, No events available. It will be updated soon.
                                                                </td>
                                                            </tr>
                                                        </EmptyDataTemplate>
                                                        <GroupTemplate>
                                                            <tr>
                                                                <td>
                                                                    <div id="itemPlaceholderContainer" runat="server">
                                                                        <div id="itemPlaceholder" runat="server">
                                                                        </div>
                                                                    </div>
                                                                </td>
                                                            </tr>
                                                        </GroupTemplate>
                                                        <ItemTemplate>
                                                            <td width="221">
                                                                <table width="221" border="0" align="center" cellpadding="0" cellspacing="0">
                                                                    <tr>
                                                                        <td>
                                                                            &nbsp;
                                                                        </td>
                                                                    </tr>
                                                                    <tr>
                                                                        <td class="image_gallery " align="center" valign="middle">
                                                                            <a href='<%# Page.ResolveUrl(WriteUrl(Eval("Name").ToString(),Eval("EventID").ToString())) %>'>
                                                                                <img src='<%# Page.ResolveUrl(Eval("EventImagePath").ToString()) %>' alt='<%# Eval("Event") %>' width="200"
                                                                                    height="130" border="0" /></a>
                                                                        </td>
                                                                    </tr>
                                                                    <tr>
                                                                        <td height="8px">
                                                                        </td>
                                                                    </tr>
                                                                    <tr>
                                                                        <td class="gallery_title" align="center">
                                                                            <a href="gallery_images.html">
                                                                                <%# Eval("Name") %></a>
                                                                        </td>
                                                                    </tr>
                                                                    <tr>
                                                                        <td height="5px">
                                                                        </td>
                                                                    </tr>
                                                                    <tr>
                                                                        <td class="photo">
                                                                           <%# Convert.ToDateTime(Eval("Date")).ToString("dd-MMMM-yyyy") %>
                                                                        </td>
                                                                    </tr>
                                                                </table>
                                                            </td>
                                                        </ItemTemplate>
                                                        <ItemSeparatorTemplate>
                                                            <td width="20">
                                                                &nbsp;
                                                            </td>
                                                        </ItemSeparatorTemplate>
                                                        <LayoutTemplate>
                                                            <table id="Table2" runat="server" width="984px">
                                                                <tr id="Tr1" runat="server">
                                                                    <td id="Td3" runat="server">
                                                                        <table id="groupPlaceholderContainer" runat="server" border="0" style="">
                                                                            <tr id="groupPlaceholder" runat="server">
                                                                            </tr>
                                                                        </table>
                                                                    </td>
                                                                </tr>
                                                            </table>
                                                        </LayoutTemplate>
                                                        <GroupSeparatorTemplate>
                                                            <tr>
                                                                <td colspan="5">
                                                                    &nbsp;
                                                                </td>
                                                            </tr>
                                                        </GroupSeparatorTemplate>
                                                    </asp:ListView>
                                                </td>
                                            </tr>
                                        </table>
                                    </td>
                                </tr>
                            </table>


In C# Code Bind the Listview and get Url using function GetUrl or WriteUrl : 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text.RegularExpressions;

public partial class Events : System.Web.UI.Page
{
    Class_Event _objEvent = new Class_Event();
    protected static int count;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            bindEvent();
        }
    }
    public void bindEvent()
    {
        _objEvent.GetAllEvent();
        if (_objEvent.OperationStatus)
        {
            count = _objEvent.EventTable.Rows.Count;
            ListView_Event.DataSource = _objEvent.EventTable;
            ListView_Event.DataBind();
        }
    }
    protected string WriteUrl(string Name, string EventId)
    {
        Name = Regex.Replace(Name.ToLower(), "[^a-zA-Z0-9_]+", "-");
        return "~/event/" + Name + "/" + EventId;
    }

}

Now In description page of Listing we can have the following code in order get data using query string from the sample url like :
http://www.goindia.in/event/event_quest/3

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class EventDescription : System.Web.UI.Page
{
    Class_Event _objEvent = new Class_Event();
    protected static string _event = string.Empty;
    protected static string _name = string.Empty;
    protected static string _address = string.Empty;
    protected static string _date = string.Empty;
    protected static string _organization = string.Empty;
    protected static string _eventdescription = string.Empty;
    protected static int count;

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            getData();
        }
    }
    protected void getData()
    {
        try
        {
            // event_id parameter is defined in web.config file above and now used here to get data.
            _objEvent.EventId = Convert.ToInt32(Request.QueryString["event_id"]);
            _objEvent.GetEventFrontById();
            if (_objEvent.OperationStatus)
            {
                _event=_objEvent.EventTable.Rows[0]["Event"].ToString();
                _name = _objEvent.EventTable.Rows[0]["Name"].ToString();
                _address = _objEvent.EventTable.Rows[0]["Address"].ToString();
                _date = _objEvent.EventTable.Rows[0]["Date"].ToString();
                _organization = _objEvent.EventTable.Rows[0]["Organization"].ToString();
                _eventdescription = _objEvent.EventTable.Rows[0]["Description"].ToString();
             
                Page.Title = _event + ", " + _name +", GoIndia";
            }
        }
        catch(Exception ex)
        {
     
        }
    }

}

No comments:

Post a Comment