Записи с метками UrlRewritingNet

System.OutOfMemoryException

Неприятный сюрприз я получил с использованием библиотеки UrlRewritingNet.UrlRewriter.dll.

Не знаю, то ли хостинг слабоват, то ли библиотека не без греха, но через 2-3 дня работы сайт падал с ошибкой "System.OutOfMemoryException", хотя сайт еще не был раскручен и имел 5-7 посетителей в сутки. Техподдержка хостинга вникать в мои проблемы не стала, а просто заявила, что проблема у меня.

На данный момент свои сайты я держу на хостинге comfoplace.com

Поскольку такая ошибка возникла впервые, а сейчас у меня 4 сайта на этом хостинге, то я решил разобраться в чем может быть проблема.

Единственное новшество - дружественные ссылки на основе библиотеки UrlRewritingNet.UrlRewriter.dll.

Ради эксперимента решил отказаться от SEO-ссылок, и оставил как есть с передачей параметра.
И, о чудо! Уже более месяца сайт работает без данной ошибки.
Вот такие дела.

Установка кода Liex на сайт ASP.net

В данной статье рассмотрим один из способов установки тематического кода Liex на сайт на платформе ASP.net с поддержкой PHP (Windows-хостинг).

О том, как установить код биржи, подробно написано на самом сайте Liex.ru

Перед добавлением площадки обязательно нужно установить на нее в папку ****** код биржи. Этой папке нужно дать права на запись (777). После добавления внесите изменения в корневой htaccess (см. пункт меню "Тематики")

На windows-хостинге нет понятия право на запись 777, необходимо разрешить запись в эту папку. В большинстве случаев Вы можете сделать это самостоятельно.

Считаем, что Вы установили скрипт, и теперь надо настроить тематики.

Данные строки нужно вставить в корневой htaccess вашего сайта (если в нем есть другие правила mod_rewrite, то тогда НАД ними):

RewriteEngine On
RewriteRule ^pages/?$ /b33b9479d2e/ [L]
RewriteRule ^stroika/?$ /b33b9479d2e/stroika.php [L]
RewriteRule ^stroika/(\d+)/?$ /b33b9479d2e/stroika_$1.php [L]
RewriteRule ^stroika/([0-9]+).(php|htm|html)$ /b33b9479d2e/$1.$2 [L]
RewriteRule ^in-yaz/?$ /b33b9479d2e/in-yaz.php [L]
RewriteRule ^in-yaz/(\d+)/?$ /b33b9479d2e/in-yaz_$1.php [L]
RewriteRule ^in-yaz/([0-9]+).(php|htm|html)$ /b33b9479d2e/$1.$2 [L]
...

Естественно, ни о каком htaccess на Windows-хостинге речи быть не может.

В качестве аналога RewriteEngine можно использовать бесплатную библиотеку UrlRewritingNet.

Необходимо скачать с сайта библиотеку UrlRewritingNet.UrlRewriter.dll и закинуть ее в папку BIN Вашего проекта.

Прописать в файле web.config необходимые настройки

<?xml version="1.0"?>
<configuration>
<configSections>
<section name="urlrewritingnet"
restartOnExternalChanges="true"
requirePermission="false"
type="UrlRewritingNet.Configuration.UrlRewriteSection,
UrlRewritingNet.UrlRewriter"/>
</configSections>
<urlrewritingnet
configSource="<strong>ExternalRewrite.config</strong>">
</urlrewritingnet>
...
<system.web>
<httpModules>
<add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.urlRewriter"/>
</httpModules>

Обратите внимание, если библиотека UrlRewritingNet не отработала на Вашем хостинге, тогда добавьте в файл web.config следующие строки

<system.webServer>

<modules>
<add name="UrlRewriteModule"
type="UrlRewritingNet.Web.UrlRewriteModule,
UrlRewritingNet.UrlRewriter" />
</modules>

Итак, Вы зарегистрировали библиотеку, теперь необходимо ее настроить. При заданной конфигурации, все настройки будут храниться в файле ExternalRewrite.config

Берем необходимые тематики с сайта Liex и прописываем в конфигурационном файле

Например


<?xml version="1.0"?>
<urlrewritingnet
rewriteOnlyVirtualUrls="true"
contextItemsPrefix="QueryString"
defaultPage = "Default.aspx"
defaultProvider="RegEx"
xmlns="http://www.urlrewriting.net/schemas/config/2006/07" >

<rewrites>

<add name="liexpagesRoot"  virtualUrl="^<strong>~/pages/</strong>"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="<strong>~/b33b9479d2e/main.php</strong>"
ignoreCase="true" />

<add name="liexCinema"  virtualUrl="^~/cinema/([0-9]+).(php|htm|html)"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/b33b9479d2e/$1.$2"
ignoreCase="true" />

<add name="liexCinemaRoot"  virtualUrl="^~/cinema/"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/b33b9479d2e/cinema.php"
ignoreCase="true" />

<add name="liexgrafika"  virtualUrl="^~/grafika/([0-9]+).(php|htm|html)"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/b33b9479d2e/$1.$2"
ignoreCase="true" />

<add name="liexgrafikaRoot"  virtualUrl="^~/grafika/"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/b33b9479d2e/grafika.php"
ignoreCase="true" />

...
</rewrites>
</urlrewritingnet>

Обратите внимание на то, что все имена должны быть уникальны.

Каталог статей в данном примере ~\pages.

Вот и все. Теперь все должно работать. Вам необходимо лишь прописать все темы, либо только те, которые Вы принимаете.

Примечание:

Не каждый windows-хостинг поддерживает PHP и файлы .htaccess. А файл .htaccess автоматически записывается в Вашу папку со статьями.

Примеры Windows-хостинга:

Seattlehost - при наличии файла .htaccess в папке выдает ошибку сервера 500

Godaddy - работает без проблем, файл .htaccess игнорируется

Comfoplace - работает без проблем, только при условии, что в настройках хостинга Вы укажите, что поддержка PHP - запустить как расширение ISAPI