Какой рейтинг вас больше интересует?
|
Главная /
Каталог блоговCтраница блогера Блог Мэтра/Записи в блоге |
Редирект 301 на ASP.NET
1970-01-01 03:00:00 (читать в оригинале)Довольно часто вебмастерм необходимо в своей практике использовать перенаправление посетителей сайта с одной страницы на другую или даже с одного сайта на другой. Причин этому может быть достаточно много, так например, как известно, что обычно существуют на хостингах зеркала сайтом, имена которых отличаются приставкой www. Не будем вдаваться в подробности существования подобных «зеркал», но знайте, что это совершенно два разных сайта, которые имеют точную копию другого, поэтому пользователь набирая адрес сайта с www и без, попадают на один и тот же сайт, но они считаются разными сайтами. То же самое происходит и с роботами, которые обходят ваши сайты, они видят два разных сайта, хотя фактически это один. Теперь представьте, что другие вебмастера на своих сайтах делают ссылки на ваш сайт, что нам и хотелось бы как можно больше, с разными названиями вашего сайта, т.е с www или без. В результате ссылочная масса на ваш сайт разделялась бы на две части, что и делают поисковые роботы, а ваша позиция сайта в этом случае так же примерно в два раза ухудшилась, поскольку в настойках своего сайта вы указываете основное «зеркало» сайта как, например, без www. Обычно это указывается в файле robots.txt.
Так вот, чтобы избежать подобных проблем, необходимо использовать редирект с кодом 301, что сообщает поисковым роботом, что страница перенесена «навсегда» по новому адресу. Для сайтов на ASP.NET это можно сделать в конфигурационном файле web.config который расположен в корне вашего сайта. В нем необходимо вставить в секцию <system.webServer> следующий код, который перенаправляет посетителей и роботов с домена с www на домен без www.
<rewrite> <rules> <rule name="Redirect from WWW" stopProcessing="true"> <match url="^(.*)$" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{HTTP_HOST}" pattern="^www\.(.+)$" /> </conditions> <action type="Redirect" url="http://{C:1}/{R:1}" redirectType="Permanent" /> </rule> </rules> </rewrite>
Или так:
<rewrite> <rules> <rule name="Redirect from WWW" stopProcessing="true"> <match url=".*" /> <conditions> <add input="{HTTP_HOST}" pattern="^www.myasp.ru$" /> </conditions> <action type="Redirect" url="http://myasp.ru/{R:0}" redirectType="Permanent" /> </rule> </rules> </rewrite>
Или так методом простого удаления www в запросе:
<rewrite> <rules> <rule name="Remove WWW" patternSyntax="Wildcard" stopProcessing="true"> <match url="*" /> <conditions> <add input="{CACHE_URL}" pattern="*://www.*" /> </conditions> <action type="Redirect" url="{C:1}://{C:2}" redirectType="Permanent" /> </rule> </rules> </rewrite>
Если вы хотите сделать редирект на другой сайт, тогда используйте такой код:
<rewrite> <rules> <rule name="Redirect" stopProcessing="true"> <match url=".*" /> <action type="Redirect" url= "http://myasp.ru" redirectType="Permanent" /> </rule> </rules> </rewrite>
Еще редирект можно настроить непосредственно на своем хостинге, вот например,
на хостинге ispserver.com можно сделать редиректы с кодами 301, 302 и 307.
Кстати очень хороший хостинг с поддержкой ASP.NET, пользуюсь несколько лет.
До этого перепробовал несколько других, где всегда был разочарован, но вот
наконец нашел стабильный, недорогой с поддержкой до 10 баз данных MS SQL
и столько же сайтов. Вообщем рекомендую, можете воспользоваться моим
промокодом 345303344, для получения скидки.
Передача двух параметров в GridView на ASP.NET
1970-01-01 03:00:00 (читать в оригинале)Зачастую программистам требуется передать в (из) GridView более одного параметра при обращении к базе данных MS SQL Server,
в этом примере показано как передать и получить три параметра из переменной сессии.
Т.е. пользователь на странице выбирает из GridView необходимую строку с данными, которая является гиперссылкой и перенаправляется на эту же страницу, но уже с выбранными тремя параметрами и таким образом получается что-то вроде перехода по "дереву" данных таблицы базы данных.
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" BackColor="Azure" HeaderStyle-BackColor="Red" HeaderStyle-Font-Bold="True" BorderColor="gray" CellPadding="3" CellSpacing="0" Font-Size="8pt" ForeColor="Black" DataKeyNames="Razdel" DataSourceID="SqlDataSource3" Width="100%"> <AlternatingRowStyle BackColor="LightCyan" /> <Columns> <asp:BoundField DataField="kod" HeaderText="Код" ItemStyle-ForeColor="Red" ItemStyle-Font-Bold = "True" SortExpression="Razdel" /> <asp:HyperLinkField DataNavigateUrlFields="Razdel, Urov, kod" DataNavigateUrlFormatString="~/index.aspx?Rz={0}&Ur={1}&kd={2}" DataTextField="Name1" ItemStyle-Font-Bold = "True" HeaderText="Наименование" /> </Columns> <EmptyDataTemplate> <font color="Red"><B>Нет входжения.</B></font></BR></BR></BR> <A href="~/index.aspx"><B>Переход в начало >>></B></A></BR></BR></BR> <A href="javascript: history.back()"><B><<< Переход назад </B></A> </EmptyDataTemplate> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource" runat="server" DataSourceMode="DataSet" connectionstring="<%$ ConnectionStrings:Conn %>" SelectCommand="SELECT Razdel, Urov, Kod, Name1 FROM Table WHERE (Razdel = @Rz) AND (Urov = @Ur) AND (Kod=@Kd) ORDER BY Kod"> <SelectParameters> <asp:SessionParameter SessionField="Rz" Name="Rz" Type="String" /> <asp:SessionParameter SessionField="Ur" Name="Ur" Type="String" /> <asp:SessionParameter SessionField="Kd" Name="Kd" Type="String" /> </SelectParameters> </asp:SqlDataSource>
+1561 |
1596 |
fiona |
+1550 |
1597 |
Алексей Чернов |
+1529 |
1559 |
Elen_i_rebyata |
+1513 |
1584 |
Малти_Ошер |
+1512 |
1589 |
Дрочливый_Драчун |
-2 |
74 |
Рыжая_Лада |
-2 |
1264 |
Сайт визажиста Мокровой Инны блог |
-2 |
947 |
G-Traveler | Сайт заметок путешественника |
-5 |
53 |
BJohn |
-6 |
17 |
Аццкей_Сотона |
Загрузка...
взяты из открытых общедоступных источников и являются собственностью их авторов.