<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SEO блог и уеб програмиране &#187; mod_rewrite</title>
	<atom:link href="http://ganbox.com/blog/tag/mod_rewrite/feed/" rel="self" type="application/rss+xml" />
	<link>http://ganbox.com/blog</link>
	<description>SEO практика: трикове при оптимизация и решаване на проблеми при уеб програмиране.</description>
	<lastBuildDate>Thu, 26 Jan 2012 19:15:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Премахване на .html от URL адреса с mod_rewrite</title>
		<link>http://ganbox.com/blog/%d0%bf%d1%80%d0%b5%d0%bc%d0%b0%d1%85%d0%b2%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-html-%d0%be%d1%82-url-%d0%b0%d0%b4%d1%80%d0%b5%d1%81%d0%b0-%d1%81-mod_rewrite/</link>
		<comments>http://ganbox.com/blog/%d0%bf%d1%80%d0%b5%d0%bc%d0%b0%d1%85%d0%b2%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-html-%d0%be%d1%82-url-%d0%b0%d0%b4%d1%80%d0%b5%d1%81%d0%b0-%d1%81-mod_rewrite/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 19:02:59 +0000</pubDate>
		<dc:creator>Георги Стефанов</dc:creator>
				<category><![CDATA[Уеб програмиране]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[заместване на URL]]></category>
		<category><![CDATA[промяна на url]]></category>
		<category><![CDATA[урок]]></category>

		<guid isPermaLink="false">http://ganbox.com/blog/?p=761</guid>
		<description><![CDATA[Тази статия е продължение на статията Приложна магия с mod_rewrite в htaccess и отговаря на въпрос зададен като коментар: &#8222;очаквам след като изпиша примерно: http://www.domain.com/za_nas.html – в полето за адреси да се вижда само http://www.domain.com/za_nas&#8222;. Тъй като решението не е много лесно, защото има подслучаи, написах отговора като отделна статия. Задача за премахване на html [...]]]></description>
			<content:encoded><![CDATA[<p>Тази статия е продължение на статията <a href="/blog/приложна-магия-с-modrewrite/">Приложна магия с mod_rewrite в htaccess</a> и отговаря на въпрос зададен като коментар: <em>&#8222;очаквам след като изпиша примерно: <a rel="nofollow" href="http://www.domain.com/za_nas.html">http://www.domain.com/za_nas.html</a> – в полето за адреси да се вижда само <a rel="nofollow" href="http://www.domain.com/za_nas">http://www.domain.com/za_nas</a>&#8222;</em>.<br />
Тъй като решението не е много лесно, защото има подслучаи, написах отговора като отделна статия.</p>
<h3>Задача за премахване на html разширение на уеб страница в адресната лента на браузъра</h3>
<p>Скриване на разширението на файла.html. Когато в браузъра се напише http://domain/page.html да се отваря html страницата, но в адреса да се замества с http://domain/page</p>
<h3>Специални изисквания за заместване</h3>
<p>Ако в една и съща директория има файл /page.html и поддиректория /page/, то потребителя трябва да получава файла, когато напише /page и директорията, когато напише /page/.</p>
<p>Ако в директорията има файл /page.html и /page.pdf (или някакъв друг различен от html), то потребителя трябва да получава /page.html, когато напише /page.</p>
<h3>Примери за поведение на пренаписващия скрипт</h3>
<p>Използва се следния формат: <span style="color: #993300;">написва</span> -&gt; <span style="color: #ff6600;">зарежда се</span> -&gt; <span style="color: #008000;">вижда в адресната лента на браузъра</span></p>
<p><span style="color: #993300;">http://domain.com/page.html</span> -&gt;<span style="color: #ff6600;"> http://domain.com/page.html</span> -&gt; <span style="color: #008000;">http://domain.com/page</span></p>
<p><span style="color: #993300;">http://domain.com/index</span> -&gt; <span style="color: #ff6600;">http://domain.com/index.html</span> -&gt; <span style="color: #008000;">http://domain.com/</span></p>
<p><span style="color: #993300;">http://domain.com/index.html</span> -&gt; <span style="color: #ff6600;">http://domain.com/index.html</span> -&gt; <span style="color: #008000;">http://domain.com/</span></p>
<p><span style="color: #993300;">http://domain.com/index.txt</span> -&gt; <span style="color: #ff6600;">http://domain.com/index.txt</span> -&gt; <span style="color: #008000;">http://domain.com/index.txt</span></p>
<p>Ако в главната уеб директория има поддиректория /doc и файл /doc.html, а в директорията doc има два файла err.html и index.html</p>
<p><span style="color: #993300;">http://domain.com/doc.html</span> -&gt; <span style="color: #ff6600;">http://domain.com/doc.html</span> -&gt; <span style="color: #008000;">http://domain.com/doc</span></p>
<p><span style="color: #993300;">http://domain.com/doc</span> -&gt; <span style="color: #ff6600;">http://domain.com/doc.html</span> -&gt; <span style="color: #008000;">http://domain.com/doc</span></p>
<p><span style="color: #993300;">http://domain.com/doc/</span> -&gt; <span style="color: #ff6600;">http://domain.com/doc/index.html</span> -&gt; <span style="color: #008000;">http://domain.com/doc/</span></p>
<p><span style="color: #993300;">http://domain.com/doc/err</span> -&gt; <span style="color: #ff6600;">http://domain.com/doc/err.html</span> -&gt; <span style="color: #008000;">http://domain.com/doc/err</span></p>
<p><span style="color: #993300;">http://domain.com/doc/err.html</span> -&gt; <span style="color: #ff6600;">http://domain.com/doc/err.html</span> -&gt; <span style="color: #008000;">http://domain.com/doc/err</span></p>
<p>Ако в поддиректорията /doc няма index.html, то при написване на http://domain.com/doc/ ще получи грешка Forbidden.</p>
<h3>Решение</h3>
<p>Следва кода за файла .htaccess любезно написан, тестван и предоставен за безплатно ползване от <a href="http://ganbox.com">ganbox.com</a></p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:700px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;"># Спира MultiViews (за да може /abc да го търси като /abc.ext преди /abc/)<br />
</span>Options <span style="color: #339933;">+</span>FollowSymLinks <span style="color: #339933;">-</span>MultiViews<br />
<br />
DirectoryIndex index<span style="color: #339933;">.</span>html<br />
<br />
<span style="color: #666666; font-style: italic;"># Спира mod_dir, за да не добавя наклонена черта в края.<br />
</span>DirectorySlash Off<br />
<br />
RewriteEngine On<br />
<br />
<span style="color: #666666; font-style: italic;"># Ако търси /index или /index.html<br />
</span>RewriteCond <span style="color: #339933;">%</span><span style="color: #009900;">&#123;</span>THE_REQUEST<span style="color: #009900;">&#125;</span> \ <span style="color: #339933;">/</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">.+/</span><span style="color: #009900;">&#41;</span>?index<span style="color: #009900;">&#40;</span>\<span style="color: #339933;">.</span>html<span style="color: #009900;">&#41;</span>?<span style="color: #009900;">&#40;</span>\?<span style="color: #339933;">.*</span><span style="color: #009900;">&#41;</span>?\  <span style="color: #009900;">&#91;</span>NC<span style="color: #009900;">&#93;</span><br />
<span style="color: #666666; font-style: italic;"># го изтрива и оставя само /<br />
</span>RewriteRule ^<span style="color: #009900;">&#40;</span><span style="color: #339933;">.+/</span><span style="color: #009900;">&#41;</span>?index<span style="color: #009900;">&#40;</span>\<span style="color: #339933;">.</span>html<span style="color: #009900;">&#41;</span>?$ <span style="color: #339933;">/%</span><span style="color:#800080;">1</span> <span style="color: #009900;">&#91;</span>R<span style="color: #339933;">=</span><span style="color: #cc66cc;">301</span><span style="color: #339933;">,</span>L<span style="color: #009900;">&#93;</span><br />
<br />
<span style="color: #666666; font-style: italic;"># Добавя наклонена черта в края на директория, ако няма файл с .html<br />
</span><span style="color: #666666; font-style: italic;"># Ако търси директория<br />
</span>RewriteCond <span style="color: #339933;">%</span><span style="color: #009900;">&#123;</span>SCRIPT_FILENAME<span style="color: #009900;">&#125;</span><span style="color: #339933;">/</span> <span style="color: #339933;">-</span>d<br />
<span style="color: #666666; font-style: italic;"># и няма html файл с такова име<br />
</span>RewriteCond <span style="color: #339933;">%</span><span style="color: #009900;">&#123;</span>SCRIPT_FILENAME<span style="color: #009900;">&#125;</span><span style="color: #339933;">.</span>html <span style="color: #339933;">!-</span>f<br />
<span style="color: #666666; font-style: italic;"># и няма наклонена черта, я добавя.<br />
</span>RewriteRule <span style="color: #009900;">&#91;</span>^<span style="color: #339933;">/</span><span style="color: #009900;">&#93;</span>$ <span style="color: #339933;">%</span><span style="color: #009900;">&#123;</span>REQUEST_URI<span style="color: #009900;">&#125;</span><span style="color: #339933;">/</span> <span style="color: #009900;">&#91;</span>R<span style="color: #339933;">=</span><span style="color: #cc66cc;">301</span><span style="color: #339933;">,</span>L<span style="color: #009900;">&#93;</span><br />
<br />
<span style="color: #666666; font-style: italic;"># Изтрива HTML разширения<br />
</span><span style="color: #666666; font-style: italic;"># Ако това е заявка от браузър (а не от Apache/mod_rewrite)<br />
</span>RewriteCond <span style="color: #339933;">%</span><span style="color: #009900;">&#123;</span>ENV<span style="color: #339933;">:</span>REDIRECT_STATUS<span style="color: #009900;">&#125;</span> ^$<br />
<span style="color: #666666; font-style: italic;"># и заявката има HTML разширение, го изтрива.<br />
</span>RewriteRule ^<span style="color: #009900;">&#40;</span><span style="color: #339933;">.+</span><span style="color: #009900;">&#41;</span>\<span style="color: #339933;">.</span>html$ <span style="color: #339933;">/</span>$<span style="color:#800080;">1</span> <span style="color: #009900;">&#91;</span>R<span style="color: #339933;">=</span><span style="color: #cc66cc;">301</span><span style="color: #339933;">,</span>L<span style="color: #009900;">&#93;</span><br />
<br />
<span style="color: #666666; font-style: italic;"># Ако в заявката има .html разширение<br />
</span>RewriteCond <span style="color: #339933;">%</span><span style="color: #009900;">&#123;</span>SCRIPT_FILENAME<span style="color: #009900;">&#125;</span><span style="color: #339933;">.</span>html <span style="color: #339933;">-</span>f<br />
<span style="color: #666666; font-style: italic;"># и няма наклонена черта, добавя .html<br />
</span>RewriteRule <span style="color: #009900;">&#91;</span>^<span style="color: #339933;">/</span><span style="color: #009900;">&#93;</span>$ <span style="color: #339933;">%</span><span style="color: #009900;">&#123;</span>REQUEST_URI<span style="color: #009900;">&#125;</span><span style="color: #339933;">.</span>html <span style="color: #009900;">&#91;</span>QSA<span style="color: #339933;">,</span>L<span style="color: #009900;">&#93;</span></div></div>
<div style="float:right;display:block" class="counterViews">Брой разглеждания на тази статия: <b>4706</b></div>

<p>Подобни статии:<ol><li><a href='http://ganbox.com/blog/%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%bd%d0%b0-%d0%bc%d0%b0%d0%b3%d0%b8%d1%8f-%d1%81-modrewrite/' rel='bookmark' title='Permanent Link: Приложна магия с mod_rewrite в htaccess'>Приложна магия с mod_rewrite в htaccess</a> <small>Пренаписване на интернет адреси с .htaccess Промяната на интернет адреси...</small></li>
<li><a href='http://ganbox.com/blog/%d0%bf%d1%80%d0%b5%d0%bd%d0%b0%d1%81%d0%be%d1%87%d0%b2%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-%d0%b4%d0%be%d0%bc%d0%b5%d0%b9%d0%bd/' rel='bookmark' title='Permanent Link: Пренасочване на домейн'>Пренасочване на домейн</a> <small>Пиша тази статия като продължение на  Приложна магия с mod_rewrite...</small></li>
<li><a href='http://ganbox.com/blog/%d0%bf%d1%80%d0%b5%d0%bc%d0%b0%d1%85%d0%b2%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-html-%d0%b3%d1%80%d0%b5%d1%88%d0%ba%d0%b8/' rel='bookmark' title='Permanent Link: Премахване на грешки в сайт и преминаване към XHTML'>Премахване на грешки в сайт и преминаване към XHTML</a> <small>Тази статия е за често срещани HTML грешки в сайтовете...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://ganbox.com/blog/%d0%bf%d1%80%d0%b5%d0%bc%d0%b0%d1%85%d0%b2%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-html-%d0%be%d1%82-url-%d0%b0%d0%b4%d1%80%d0%b5%d1%81%d0%b0-%d1%81-mod_rewrite/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Пренасочване на домейн</title>
		<link>http://ganbox.com/blog/%d0%bf%d1%80%d0%b5%d0%bd%d0%b0%d1%81%d0%be%d1%87%d0%b2%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-%d0%b4%d0%be%d0%bc%d0%b5%d0%b9%d0%bd/</link>
		<comments>http://ganbox.com/blog/%d0%bf%d1%80%d0%b5%d0%bd%d0%b0%d1%81%d0%be%d1%87%d0%b2%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-%d0%b4%d0%be%d0%bc%d0%b5%d0%b9%d0%bd/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 12:53:35 +0000</pubDate>
		<dc:creator>gan</dc:creator>
				<category><![CDATA[SEO]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[ModRewrite]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[rewrite]]></category>
		<category><![CDATA[виртуални поддомейни]]></category>
		<category><![CDATA[домейн]]></category>
		<category><![CDATA[домейни]]></category>
		<category><![CDATA[паркиране на домейн]]></category>
		<category><![CDATA[поддиректории]]></category>
		<category><![CDATA[поддомейн]]></category>
		<category><![CDATA[пренасочване]]></category>
		<category><![CDATA[субдомейн]]></category>

		<guid isPermaLink="false">http://ganbox.com/blog/?p=458</guid>
		<description><![CDATA[Пиша тази статия като продължение на  Приложна магия с mod_rewrite в htaccess Пренасочване на домейн Както вече писах в статията Често срещани SEO грешки на бизнес сайтове в точка 2. Създаване на огледални сайтове често срещан проблем е повече от един URL адрес да сочи едно и също съдържание. Освен описания случай в статията, много [...]]]></description>
			<content:encoded><![CDATA[<p>Пиша тази статия като продължение на  <a href="/blog/%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%bd%d0%b0-%d0%bc%d0%b0%d0%b3%d0%b8%d1%8f-%d1%81-modrewrite/">Приложна магия с mod_rewrite в htaccess</a></p>
<h3>Пренасочване на домейн</h3>
<p>Както вече писах в статията <a href="/blog/%d1%87%d0%b5%d1%81%d1%82%d0%be-%d1%81%d1%80%d0%b5%d1%89%d0%b0%d0%bd%d0%b8-seo-%d0%b3%d1%80%d0%b5%d1%88%d0%ba%d0%b8/">Често срещани SEO грешки на бизнес сайтове</a> в точка 2. <em>Създаване на огледални сайтове</em> често срещан проблем е повече от един URL адрес да сочи едно и също съдържание. Освен описания случай в статията, много често се случва нова фирма да купи няколко нови домейна като например targovskamarka.com, targovskamarka.net и targovskamarka.org и да ги насочи към едно и също IP и едни и същи файлове. В това число влиза и пренасочване на домейн от тип &#8222;Паркиране на домейн&#8220;. За избягване на наказание от Гугъл за дублиране на съдържание, идеалният случай е да се определи един от домейните като главен, а другите домейни да пренасочват към главния. Като изключително важно е пренасочването да бъде от тип 301 &#8211; permanent redirect. Нека в този пример главен домейн е targovskamarka.com. Дори да са на споделен хостинг трябва всеки от домейните да има различна уеб директория, като главния съдържа файловете, а тези които пренасочват съдържат в главната си уеб директория .htaccess файл като:</p>
<blockquote>
<pre>Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?targovskamarka\.(net|org)$ [NC]
RewriteRule ^(.*)$ http://targovskamarka.com/$1 [R=301,L]</pre>
</blockquote>
<p>Този .htaccess файл поставен в главната уеб директория на домейните които пренасочваш, ще ти помогне дори в случая, когато си направил грешката да размножиш файловете на сайта на няколко различни места. Освен това ще пренасочва не само главната страница, а и вътрешните страници. Например targovskamarka.net/contact.html вече ще сочи към targovskamarka.com/contact.html</p>
<p><strong>Внимание</strong>: Тук има един тънък момент. Ако искаш targovskamarka.net/blog/ да бъде пренасочен към targovskamarka.com/blog/ задължително трябва да изтриеш .htaccess файла в директория blog на стария домейн targovskamarka.net. Същото се отнася и за други поддиректории в които има .htaccess файлове.</p>
<h3>Преминаване към нов домейн</h3>
<p>Както вече сигурно се досети подобен на горния .htaccess файл се ползва и в случаите, когато преместваш сайта си на нов домейн. Например досега си ползвал domain-bg.com и вече притежаваш domain.bg. Новия домейн .bg е по престижен, затова го направи главен, а стария пренасочи към новия. Не е нужно новия домейн да бъде на друг хостинг. Може да го насочиш към същия IP адрес и от cpanel на хостинга да си добавиш новия домейн като addon домейн. Ако нямаш право на повече addon домейни ще трябва да си доплатиш на хостинг доставчика за още един домейн.</p>
<p>Би трябвало при такова пренасочване новият домейн да наследи всички активи на връзките към стария домейн. Все пак те съветвам да промениш на колкото повече места можеш връзките да сочат директно към новия домейн и да не минават през пренасочване. След като копираш файловете на сайта на новата уеб директория и направиш това пренасочване, увери се, че то работи &#8211; при написване на стария домейн в браузъра, той трябва да се подмени с новия. Ако всичко работи можеш да изтриеш всички файлове на сайта от старата уеб директория, като оставиш само файла .htaccess &#8211; това ще ти спести място на хостинга и ще избегнеш объркване да променяш старите файлове и да се чудиш защо сайта не се променя <img src='http://ganbox.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h3>Дублиране на съдържание</h3>
<p>За търсачките адресите domain.com,  www.domain.com, domain.com/index.html,  www.domain.com/index.html, domain.com/index.php и www.domain.com/index.php са различни адреси. Личното ми мнение е че Гугъл е достатъчно &#8222;умен&#8220; и няма да изтълкува това като <strong>дублиране на съдържание</strong>. По мои наблюдения Гугъл се справя и с още по сложни URI адреси като domain.com/index.php?lang=bg или www.domain.com/?lang_id=2, които също сочат началото на сайта и по-точно българската версия и са точно като страницата domain.com. Въпреки това ако те гони параноя, че Гугъл ще решат друго и се страхуваш от наказание заради дублиране на съдържание, може да използваш следния .htaccess файл.</p>
<blockquote>
<pre>Options +FollowSymlinks -Indexes
RewriteEngine On
RewriteCond %{THE_REQUEST} /index\.(php|html)\ HTTP/
RewriteRule ^index\.(php|html)$ / [R=301,L]
RewriteCond %{HTTP_HOST} ^www\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]</pre>
</blockquote>
<p>Нали не е нужно да ти казвам да замениш domain.com с твоя домейн? <img src='http://ganbox.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  В този пример като приоритет се задава изписване на домейна като domain.com вместо www.domain.com &#8211; по-кратко и по-удобно е. Време е всички да се отървем от досадното &#8222;www.&#8220;. Ако все пак по някаква странна причина искаш твоя домейн да се изписва само като www.domain.com ще трябва да замениш последните два реда със следните:</p>
<blockquote>
<pre>RewriteCond %{HTTP_HOST} ^domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]</pre>
</blockquote>
<h3>Съвет за уеб разработчиците</h3>
<p>Като поставяш в кода връзка към началната страница не пиши &#8222;index.php&#8220;, а само &#8222;/&#8220;. Също така добра практика е всичките ти връзки да започват с / например пиши &#8222;/contact.php&#8220; вместо &#8222;contact.php&#8220;. Връзките до картинките да започват с &#8222;/images&#8220; вместо &#8222;images&#8220; и по същия начин пиши &#8222;/css&#8220; и &#8222;/js&#8220; вместо само &#8222;css&#8220; и &#8222;js&#8220;.</p>
<h3>Поддомейн или директория</h3>
<p>Често получавам въпроса blog.domain.com или domain.com/blog? Няма еднозначен отговор, защото зависи каква е целта ти.</p>
<h4>1. Използване на поддомейн</h4>
<p>Ако искаш новия поддомейн да се разглежда от търсачките като отделен сайт и да излиза в резултатите от търсене като още един резултат, тогава избери варианта с поддомейн. Възможно е поддомейна да задмине основния домейн и да излиза в <a href="http://ganbox.com/blog/какво-е-serp/">SERP</a> по-напред. Особено ако основния сайт не се променя толкова често както блога.</p>
<p>Ако до този момент си ползвал поддиректория и искаш вече да ползваш субдомейн. Първото което трябва да направиш е от cpanel да си добавиш поддомейна от Domains -&gt; Subdomains. Нека за този пример поддомейна се казва &#8222;sub&#8220;. След това добави следния .htaccess:</p>
<blockquote>
<pre>Options +FollowSymLinks
RewriteEngine On
RewriteRule ^sub(/(.*))?$ http://sub.domain.com/$2 [R=301,L]</pre>
</blockquote>
<p>Ако случайно няма mod_rewrite може да се осъществи и с mod_dir като замениш последните 2 реда с:</p>
<blockquote>
<pre>Redirect 301 /sub http://sub.domain.com</pre>
</blockquote>
<h4>2. Използване на поддиректория</h4>
<p>Ако искаш да засилиш тежестта на основния домейн тогава избери варианта с директория. Всяка статия в блога ще носи тежест на домейна.</p>
<p>Ако до този момент си ползвал поддомейн и искаш да започнеш да ползваш поддиректория, като например пренасочване на sub.domain.com и www.sub.domain.com към domain.com/sub/, тогава ползвай следния .htaccess файл:</p>
<blockquote>
<pre>Options +FollowSymLinksRewriteEngine On</pre>
<pre># изключение за оправяне на липсваща наклонена черта
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([^\.]+)\.domain\.com$ [NC]
RewriteCond %{DOCUMENT_ROOT}/%2%{REQUEST_URI}/ -d
RewriteRule [^/]$ %{REQUEST_URI}/ [R=301,L] 

# пренасочване на всички субдомейни към съответни поддиректории
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([^\.]+)\.domain\.com$ [NC]
RewriteRule ^(.*)$ /%2/$1 [QSA,L]</pre>
</blockquote>
<p>Това ще пренасочва на само поддомейна sub, а и всеки поддомейн който имаш към съответната поддиректория. Ако притежаваш собствен DNS сървър, може да използваш горния .htaccess файл за създаване на <strong>виртуални поддомейни</strong>.</p>
<div style="float:right;display:block" class="counterViews">Брой разглеждания на тази статия: <b>5114</b><br /><span style="color:grey;font-size:0.8em">(след дата 20 декември 2009)</span></div>

<p>Подобни статии:<ol><li><a href='http://ganbox.com/blog/%d0%bf%d1%80%d0%b5%d0%bc%d0%b0%d1%85%d0%b2%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-html-%d0%be%d1%82-url-%d0%b0%d0%b4%d1%80%d0%b5%d1%81%d0%b0-%d1%81-mod_rewrite/' rel='bookmark' title='Permanent Link: Премахване на .html от URL адреса с mod_rewrite'>Премахване на .html от URL адреса с mod_rewrite</a> <small>Тази статия е продължение на статията Приложна магия с mod_rewrite...</small></li>
<li><a href='http://ganbox.com/blog/%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%bd%d0%b0-%d0%bc%d0%b0%d0%b3%d0%b8%d1%8f-%d1%81-modrewrite/' rel='bookmark' title='Permanent Link: Приложна магия с mod_rewrite в htaccess'>Приложна магия с mod_rewrite в htaccess</a> <small>Пренаписване на интернет адреси с .htaccess Промяната на интернет адреси...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://ganbox.com/blog/%d0%bf%d1%80%d0%b5%d0%bd%d0%b0%d1%81%d0%be%d1%87%d0%b2%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-%d0%b4%d0%be%d0%bc%d0%b5%d0%b9%d0%bd/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Приложна магия с mod_rewrite в htaccess</title>
		<link>http://ganbox.com/blog/%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%bd%d0%b0-%d0%bc%d0%b0%d0%b3%d0%b8%d1%8f-%d1%81-modrewrite/</link>
		<comments>http://ganbox.com/blog/%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%bd%d0%b0-%d0%bc%d0%b0%d0%b3%d0%b8%d1%8f-%d1%81-modrewrite/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 16:30:05 +0000</pubDate>
		<dc:creator>gan</dc:creator>
				<category><![CDATA[SEO]]></category>
		<category><![CDATA[Сигурност]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[redirect]]></category>
		<category><![CDATA[regular expressions]]></category>
		<category><![CDATA[RewriteRule]]></category>
		<category><![CDATA[seo friendly]]></category>
		<category><![CDATA[достъп до сайт]]></category>
		<category><![CDATA[интернет адреси]]></category>
		<category><![CDATA[ограничаване на достъпа]]></category>
		<category><![CDATA[пренасочване]]></category>
		<category><![CDATA[прокси]]></category>
		<category><![CDATA[регулярни изрази]]></category>
		<category><![CDATA[трикове]]></category>
		<category><![CDATA[хакер]]></category>

		<guid isPermaLink="false">http://ganbox.com/blog/?p=162</guid>
		<description><![CDATA[Пренаписване на интернет адреси с .htaccess Промяната на интернет адреси с mod_rewrite се прави основно по следните seo причини: съкращаване на адресите: адресите стават за индексиране от търсачките (seo friendly) и лесни за ръчно изписване в браузър пренасочване на стари адреси към нови при преименуване на файлове на страници ако има страници, които се достъпват [...]]]></description>
			<content:encoded><![CDATA[<h2>Пренаписване на интернет адреси с .htaccess</h2>
<p>Промяната на интернет адреси с mod_rewrite се прави основно по следните seo причини:</p>
<ul>
<li>съкращаване на адресите: адресите стават за индексиране от търсачките (seo friendly) и лесни за ръчно изписване в браузър</li>
<li>пренасочване на стари адреси към нови при преименуване на файлове на страници</li>
<li>ако има страници, които се достъпват с повече от един адрес се пренасочват излишните адреси</li>
<li>скриване на вида файлове на страниците на сайта</li>
</ul>
<p>Пренасочванията се извършват от правила зададени във файла .htaccess, който трябва да се намира в главната уеб директория.</p>
<p>Правилата използват регулярни изрази (regular expressions) и могат да бъдат много сложни. В тази статия обаче ще разгледам само най-често ползваните правила от SEO специалистите.</p>
<p>За да работи този файл е нужно уеб сървъра да има инсталиран модул mod_rewrite и в конфигурационния файл /etc/httpd/conf/httpd.conf  трябва да е зададена опцията <strong>AllowOverride All</strong></p>
<p>На повечето съвременни хостинг сървъри тези опции са включени по подразбиране, ако това не е така ще трябва да се свържеш със системния администратор на хостинга.</p>
<h3>Проверка дали mod_rewrite работи<strong><br />
</strong></h3>
<p>Постави следните редове в .htaccess файла и опитай да отвориш адреса http://domain.com/test  където domain.com е името на твоя сайт. Ако се отвори сайта ganbox.com това значи всичко е наред и mod_rewrite работи.</p>
<blockquote>
<pre>Options +FollowSymLinks</pre>
<pre>RewriteEngine On
RewriteBase /</pre>
<pre>RewriteRule test http://ganbox.com/? [NC,R,L]</pre>
</blockquote>
<p>Обикновено файла .htaccess започва със следните няколко реда. За краткост ще бъдат пропускани в примерите долу.</p>
<blockquote>
<pre>Options +FollowSymLinks -Indexes -MultiViews
RewriteEngine On
RewriteBase /</pre>
</blockquote>
<h3>Просто пренасочване на преименувана страница</h3>
<p>Ако страница /about.html е преименувана на /contact.php</p>
<blockquote>
<pre>redirect 301 /about.html /contact.php</pre>
</blockquote>
<p>аналогично</p>
<blockquote>
<pre>RewriteRule ^about\.html$ /contact.php [R=permanent,L]</pre>
</blockquote>
<p>[L]  казва, че това е последното правило, което трябва да се обработи.</p>
<h3>Скриване на вида файлове</h3>
<p>Всеки адрес от вида domain.com/страница, като страница може да съдържа малки или главни букви, цифри и знаците &#8222;-&#8220; и &#8222;_&#8220;.</p>
<blockquote>
<pre>RewriteRule ^([-\w0-9_]+)$ /$1.php [L,NC,QSA]</pre>
</blockquote>
<p>Пример: при написване на адрес domain.com/форма-за-контакти2 ще бъде потърсена страница /форма-за-контакти2.php</p>
<p><strong>Внимание:</strong> ако уеб съръвра е на Windows машина, горния регулярен израз вероятно няма да сработи,заради бъг в win32 mod_rewrite апаче модула.</p>
<blockquote>
<pre>RewriteRule ^([-А-Яа-яA-Za-z0-9_]+)$ /$1.asp [L,NC,QSA]</pre>
</blockquote>
<p>Вместо \w или А-Яа-яA-Za-z  използвай АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЬЮЯабвгдежзийклмнопрстуфхцчшщъьюяA-Za-z</p>
<p>В този пример при написване на адрес domain.com/Условия_За_Ползване ще бъде потърсена страница /Условия_За_Ползване.asp</p>
<p>като в полето за адреси на браузъра ще остане да се вижда http://domain.com/Условия_За_Ползване</p>
<p>Очевидно е, че по този начин няма как да се разбере какви скриптове управляват страниците на сайта. Дори може да се направи страниците да изглеждат като html файлове, а да се изпълняват едноименни php файлове с правилото:</p>
<blockquote>
<pre>RewriteRule ^([-А-Яа-яA-Za-z0-9_]+)\.html$ /$1.php [QSA,L]</pre>
</blockquote>
<p>в този случай ако напишеш http://domain.com/clients.html ще бъде потърсен файла /clients.php. Този подход има двоен положителен ефект &#8211; от една страна търсачките и от друга сигурност.</p>
<h3>Съкращаване на адреси</h3>
<p>Много често при <a href="http://ganbox.com/">SEO оптимизация</a> на динамични сайтове с CMS се налага съкращаване на адреси.</p>
<p>Дълги адреси като този</p>
<p><span class="postbody">http://domain.com/index.php?sec=pro&amp;cat=48&amp;category=avto</span></p>
<p>да изглеждат като този</p>
<p>http://domain.com/sec/pro/cat/48/category/avto</p>
<blockquote>
<pre>RewriteRule
^sec/([^/]+)/cat/([0-9]+)/category/([^/]+)/?$
/index.php?sec=$1&amp;cat=$2&amp;category=$3 [QSA,L]</pre>
</blockquote>
<p>Разбира се горното правило се пише на един ред, като между отделните части има по един интервал.</p>
<p>След това в кода се правят промени на всички места, които образуват връзки, за да откриеш всички тези места може да търсиш във всички файлове за http или за href.</p>
<p>Хубавото е, че старите адреси продължават да работят и не е проблем за хората, които са направили Bookmark към стар адрес.</p>
<h3>Пренасочване на адреси към един файл</h3>
<p>Превод на адреси от вида www.domain.com/contacts към файл index.php, като подава по GET в променлива p името на страницата www.domain.com/index.php?p=contacts</p>
<blockquote>
<pre># ако не бъде открит файл
RewriteCond %{SCRIPT_FILENAME} !-f</pre>
<pre># ако не бъде открита директория
RewriteCond %{SCRIPT_FILENAME} !-d</pre>
<pre># подава низа към файла index.php
RewriteRule ^([^/]+)/?$ /index.php?p=$1 [QSA,L]</pre>
</blockquote>
<p>По този начин всеки адрес ще се изпраща за обработка към един единствен файл index.php често наричан диспечер (dispatcher).</p>
<p>В този файл се взема подадения низ и се слага в променлива $page. След това се проверява и ако файла със страницата не съществува се преминава към страница с грешка 404.php</p>
<blockquote>
<pre>$page= isset($_GET['p']) ? $_GET['p'] : 'home';
if(!file_exists(ABS_PATH.$page.'.php')) $page = '404';
include_once(ABS_PATH.$page.'.php');</pre>
</blockquote>
<p>От съображения за сигурност е много важно преди този код да е дефинирана константата ABS_PATH като в нея има абсолютен път до главната уеб директория например:</p>
<blockquote>
<pre>define('ABS_PATH', '<span id="ygtvlabelel1" class="ygtvlabel">/home/account</span>/www/');</pre>
</blockquote>
<p>където <span id="ygtvlabelel1" class="ygtvlabel">account е потребителско име за cpanel на хостинга. </span></p>
<p><span id="ygtvlabelel1" class="ygtvlabel">Ако се очаква в адреса на страницата да има само латински букви и тирета, тогава в index.php преди реда с </span>file_exists добави следния ред:</p>
<blockquote>
<pre>$page = preg_replace('|[^A-Za-z_-]|','',$page);
# премахва всичко различно от буква и знаците _ и -</pre>
</blockquote>
<h3>Премахване на проблем с дублирани адреси</h3>
<p>Наскоро имах следния проблем при оптимизиране на динамичен сайт. В навигацията сайта има два бутона за превключване на езика с българското и английското знаме.</p>
<p>Ако текущия адрес е http://domain.com/page.php?id=7</p>
<p>то бутона с английското знаме сочи към http://domain.com/page.php?lang=en&amp;id=7</p>
<p>а бутона с българското знаме към http://domain.com/page.php?lang=bg&amp;id=7</p>
<p>От потребителска гледна точка е удобно защото при смяна на езика оставаш в текущата страница, но от гледна точка на търсачката всяка страница на български има по два адреса.</p>
<p>Дори началната страница има 3 адреса: http://domain.com,  http://domain.com/index.php  и  http://domain.com/index.php?lang=bg</p>
<p>Решение:</p>
<blockquote>
<pre># премахване на всички низове <span class="postbody">index.* от интернет адреса.
# Заб. Изтрий тези две правила ако искаш да инсталираш форум или блог</span></pre>
<pre>RewriteCond %{THE_REQUEST} \ /(.+/)?index\.([^/]+)(\?.*)?\  [NC]
RewriteRule ^(.+/)?index\.([^/]+)$ /%1 [NC,R=301,L]</pre>
<pre># Правила за премахване на параметър lang=bg като запазва всичко останало в адреса

RewriteCond %{QUERY_STRING} ^(([^&amp;]*&amp;)*)(lang=bg)($|&amp;)(.*)
RewriteRule .* $0?%1%5 [N,E=REMOVED:true]
RewriteCond %{ENV:REMOVED} true
RewriteRule ^ %{REQUEST_URI} [L,R=301]</pre>
</blockquote>
<p><strong>Внимание:</strong> Ако добавиш първите две правила за премахване на index от адресите и в последствие решиш да инсталираш форум, блог или някакъв CMS в поддиректория в същия сайт, се очаква да имаш проблеми и  инсталацията няма да може да се извърши.</p>
<h3>Премахване на www.</h3>
<p>Пренасочване на  www.domain.com/страница  към domain.com/страница</p>
<blockquote>
<pre>RewriteCond %{HTTP_HOST} ^www\.(domain\.com)$ [NC]
RewriteRule ^(.*)$ http://%1%{REQUEST_URI} [R=301,L]</pre>
</blockquote>
<h2>Други полезни трикове в .htaccess</h2>
<h3>Ограничаване на достъпа</h3>
<h4>по IP адрес</h4>
<p>За да забраниш достъпа до сайта от IP адрес 207.246.65.22 в началото на файла напиши</p>
<blockquote>
<pre># ban web proxy
Deny from 207.246.65.22</pre>
</blockquote>
<p>За да забраниш цялата мрежа 64.4.0.0 &#8211; 64.4.63.255 на Microsoft и техния MSN Bot напиши</p>
<blockquote>
<pre>Deny from 64.4.0.0/18</pre>
</blockquote>
<p>За да забраниш няколко  мрежи в Киев от които в блога вали спам изпращан от различни IP адреси като: 95.133.140.7, 95.133.192.198 и др. напиши:</p>
<blockquote>
<pre>Deny from 91.124.0.0/16
Deny from 91.195.12.0/23
Deny from 94.178.0.0/15
Deny from 95.132.0.0/14</pre>
</blockquote>
<p>Има предвид, че така блокираш много хора от Киев. Прецени сам дали очакваш читатели от там.</p>
<h4>по тип на търсения файл</h4>
<p>Забрана за показване на файлове, които завършват на .txt</p>
<blockquote>
<pre>&lt;Files ~ "\.txt$"&gt;
    Order allow,deny
    Deny from all
&lt;/Files&gt;</pre>
</blockquote>
<p><strong> </strong></p>
<h4>по вид браузър</h4>
<p>Ако имаш директория /old в която има стара версия на сайта, която поддържа архаичния браузър Internet Explorer 6, може да пренасочиш всички заявки от такъв браузър заедно с подадените параметри към тях.</p>
<blockquote>
<pre># за браузър IE6 или по-стар пренасочва към /old
RewriteCond %{HTTP_USER_AGENT} MSIE\ [1-6]
RewriteRule !^old(/.*)?$ /old%{REQUEST_URI} [QSA,L]
</pre>
</blockquote>
<h4>ограничаване на ботове</h4>
<p>Ако забележиш в логовете, че твоя сайт е налазен от ботове може да използваш следния код:</p>
<pre>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">RewriteCond %{HTTP_USER_AGENT} ^$<br />
RewriteRule ^.* - [F]</div></div>
</pre>
<p>Това ще блокира всички ботове, които не изпращат USER_AGENT. Няма да се блокират ботовете на търсачките Google, Yahoo и др. Ако някой програмист иска да обхожда твоя сайт с бот, това няма да го спре, защото ще ти подава валиден USER_AGENT. Също добра идея е да не се блокира с Forbbiden, а да се пренасочи към специална страница за ботове.</p>
<h4>забрана на достъп до сайт през прокси</h4>
<p>Напиши всичките тези правила и ще ограничиш достъпа до сайта от огромно количество свободни уеб прокси сайтове. Много е полезно за сайтове с форуми, където често потребителите си правят втори профил през прокси, за да се представят за друг човек.</p>
<blockquote>
<pre>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">RewriteCond %{HTTP:VIA} &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !^$ [OR]<br />
RewriteCond %{HTTP:FORWARDED} &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; !^$ [OR]<br />
RewriteCond %{HTTP:USERAGENT_VIA} &nbsp; &nbsp; &nbsp; !^$ [OR]<br />
RewriteCond %{HTTP:X_FORWARDED_FOR} &nbsp; &nbsp; !^$ [OR]<br />
RewriteCond %{HTTP:PROXY_CONNECTION} &nbsp; &nbsp;!^$ [OR]<br />
RewriteCond %{HTTP:XPROXY_CONNECTION} &nbsp; !^$ [OR]<br />
RewriteCond %{HTTP:HTTP_PC_REMOTE_ADDR} !^$ [OR]<br />
RewriteCond %{HTTP:XROXY_CONNECTION} &nbsp; &nbsp;!^$ [OR]<br />
RewriteCond %{HTTP:X-FORWARDED-FOR} &nbsp; &nbsp; !^$ [OR]<br />
RewriteCond %{HTTP:FORWARDED-FOR} &nbsp; &nbsp; &nbsp; !^$ [OR]<br />
RewriteCond %{HTTP:X-FORWARDED} &nbsp; &nbsp; &nbsp; &nbsp; !^$ [OR]<br />
RewriteCond %{HTTP:HTTP_CLIENT_IP} &nbsp; &nbsp; &nbsp;!^$<br />
RewriteRule ^(.*)$ - [F]</div></div>
</pre>
</blockquote>
<h3>Сигурност</h3>
<p><span style="color: #993300;"><strong>Много важно!</strong></span> Ако ползваш на твоя сайт едно от следните: картинки против автоматични регистрации (captcha),  smarty темплейти или имаш директория, в която могат да се качват снимки или други файлове. Тогава вероятно тези директории имат повече права за писане в тях. Възможно е хакер да се възползва от тази слабост и да качи в такава директория root shell скрипт, който му дава достъп до файлове, база данни и изпълнение на команди. Пример за такива директории в WordPress са тези в  wp-content/uploads. Много добра идея е в такива директории да поставиш htaccess подобен на следния:</p>
<pre>&lt;Files ~ "^.*\.(php|pl|log|bak)"&gt;
 Order allow,deny
 Deny from all
 Satisfy All
&lt;/Files&gt;</pre>
<p>Това забранява достъпа до php и pl файлове качени в тази директория. Допълни в първия ред разделени с | разширенията на всички типове файлове, които не се очаква да присъстват в тази директория. Друг вариант е, ако директорията е само за картинки да изброиш типовете файлове, които се очакват да са в директорията със следния htaccess файл:</p>
<pre>RewriteCond %{REQUEST_URI} !(\.(gif|jpe?g|png)$)
RewriteRule .* - [F,L]</pre>
<p>Копирай този файл във всички директории за картинки. Сложи този файл в директорията upload на WordPress и той ще защити всички поддиректории, които се създават. В зависимост какви файлове качваш в блога, може да разшириш списъка. При мен е  !(\.(gif|jpe?g|png|zip|doc|xls|xml|html|txt)$) разбира се НЕ трябва да добавяш php иначе се губи смисъла.</p>
<p>Най-добрия вариант е ако може всички подобни директории да бъдат едно ниво нагоре извън главната уеб директория. Така няма да има нужда от htaccess в тях, защото дори хакер да качи файл няма да може да го достъпи през уеб. И освен това всеки път като архивираш проекта на сайта няма да копираш мегабайти излишна временна информация.</p>
<h3>Обработка на грешки</h3>
<p>Задаване на различни обработчици на възникнали грешки: служебна страница със съобщение , локална страница или файл на друг сървър.</p>
<blockquote>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">ErrorDocument 403 &quot;Sorry! Access denied!&quot;</div></div>
<pre>ErrorDocument 404 /404.html</pre>
<pre>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">ErrorDocument 500 http://drug.domain.com/error</div></div>
</pre>
</blockquote>
<p>в този пример, ако бъде написан адрес към несъществуваща страница, ще бъде зареден файла /404.html</p>
<p>Продължава в статията <a href="/blog/%d0%bf%d1%80%d0%b5%d0%bd%d0%b0%d1%81%d0%be%d1%87%d0%b2%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-%d0%b4%d0%be%d0%bc%d0%b5%d0%b9%d0%bd/">Пренасочване на домейн</a>.</p>
<h6 style="text-align: right;">© В статията са ползвани материали от <a href="http://forum.modrewrite.com">forum.modrewrite.com</a></h6>
<div style="float:right;display:block" class="counterViews">Брой разглеждания на тази статия: <b>16238</b><br /><span style="color:grey;font-size:0.8em">(след дата 20 декември 2009)</span></div>

<p>Подобни статии:<ol><li><a href='http://ganbox.com/blog/%d0%bf%d1%80%d0%b5%d0%bc%d0%b0%d1%85%d0%b2%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-html-%d0%be%d1%82-url-%d0%b0%d0%b4%d1%80%d0%b5%d1%81%d0%b0-%d1%81-mod_rewrite/' rel='bookmark' title='Permanent Link: Премахване на .html от URL адреса с mod_rewrite'>Премахване на .html от URL адреса с mod_rewrite</a> <small>Тази статия е продължение на статията Приложна магия с mod_rewrite...</small></li>
<li><a href='http://ganbox.com/blog/%d0%bf%d1%80%d0%b5%d0%bd%d0%b0%d1%81%d0%be%d1%87%d0%b2%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-%d0%b4%d0%be%d0%bc%d0%b5%d0%b9%d0%bd/' rel='bookmark' title='Permanent Link: Пренасочване на домейн'>Пренасочване на домейн</a> <small>Пиша тази статия като продължение на  Приложна магия с mod_rewrite...</small></li>
<li><a href='http://ganbox.com/blog/%d0%bb%d0%b8%d0%bd%d1%83%d0%ba%d1%81-%d1%82%d1%80%d0%b8%d0%ba%d0%be%d0%b2%d0%b5/' rel='bookmark' title='Permanent Link: Линукс трикове'>Линукс трикове</a> <small>Няколко скрипта за команден ред под Линукс, които ползвам често...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://ganbox.com/blog/%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%bd%d0%b0-%d0%bc%d0%b0%d0%b3%d0%b8%d1%8f-%d1%81-modrewrite/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

