<?xml version='1.0' encoding='UTF-8'?>
<rss version='2.0'>
	<channel>
		<title>cotonti.com : Rewrite в Nginx для правильных ссылок</title>
		<link>https://www.cotonti.com</link>
		<description>Останні повідомлення в темі</description>
		<generator>Cotonti</generator>
		<language>en</language>
		<pubDate>Fri, 10 Apr 2026 22:26:18 -0000</pubDate>

		<item>
			<title>Trustmaster</title>
			<description><![CDATA[<p>
	В альфа-версиях Сиены мы предлагали перейти к универсальному загрузчику в index.php и обеспечить работу старых ссылок с помощью rewrite'ов и 301 редиректов. Но консервативно настроенные пользователи потребовали от нас вернуть старые ссылки по умолчанию без каких-либо rewrite'ов.</p>
<p>
	Предложенный способ разбора перезаписанных ссылок на стороне скрипта планируется реализовать в задаче <a href="http://trac.cotonti.com/ticket/614">#614</a>. Единая точка входа, конечно, упростила бы работу над ней.</p>
]]></description>
			<pubDate>Пн, 06 Чер 2011 15:57:40 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/ua/forums?m=posts&q=6373&d=0#post29808]]></link>
		</item>
		<item>
			<title>Boss</title>
			<description><![CDATA[<p>
	Может быть кто-то уже имел опыт настройки Nginx под красивые ссылке в Cotonti? Смысл в том, что Apache не используется на сервере вообще, соответвенно mod_rewrite недоступен.</p>
<p>
	Для Apache было лишь две строки:</p>
<p>
	 </p>
<div>
	<pre class="brush:php;">
RewriteRule ^([a-z]+)-([0-9a-z]+)-([0-9a-z_]*)-?(.*)$ $1-$4?$2=$3 [NC,QSA]
RewriteRule ^([a-z]+)-?\.html$ $1.php [NC,L,QSA]
</pre>
</div>
<div>
	Их и необходимо преобразовать под синтексис Nginx.</div>
<div>
	Что-то вроде этого должно быть:</div>
<div>
	<div>
		<pre class="brush:php;">
rewrite  ^(.*)([a-z]+)-([0-9a-z]+)-([0-9a-z_]*)-?(.*)$ $1$2-$5?$3=$4 last;
rewrite  ^(.*)([a-z]+)-?\.html$ $1$2.php last;</pre>
		В текущем виде не работает первая строка.</div>
</div>
<p>
	 </p>
<p><strong>Добавлено 11 часа спустя:</strong></p><p>
	Копаться некогда. Пока сделал тупо, но главное, оно работает:</p>
<pre class="brush:php;">
rewrite  "^/([a-z_]+)\.html$" /$1.php last;
rewrite  "^/([a-z]+)-([a-z]+)-([0-9a-z_]*)\.html$" /$1.php?$2=$3 last;
rewrite  "^/([a-z]+)-([a-z]+)-([0-9a-z_]*)-([a-z]+)-([0-9a-z_]*)\.html$" /$1.php?$2=$3&amp;$4=$5 last;
rewrite  "^/([a-z]+)-([a-z]+)-([0-9a-z_]*)-([a-z]+)-([0-9a-z_]*)-([a-z]+)-([0-9a-z_]*)\.html$" /$1.php?$2=$3&amp;$4=$5&amp;$6=$7 last;


</pre>
<p><strong>Добавлено 4 дня спустя:</strong></p><p>
	На сайте разработчиков Nginx подсказали как правильно преобразовать две строчки Apache написанные выше в синтексису Nginx. Вот оно:</p>
<pre class="brush:php;">
location / {
rewrite ^(/[a-z]+)-([0-9a-z]+)-([0-9a-z_]*)-?(.*)$ $1-$4?$2=$3;
rewrite ^(/[a-z]+)-?\.html$ $1.php last;
}
</pre>
<p>
	Проверенно, работает. Вот ссылка на обсуждение <a href="http://forum.nginx.org/read.php?21,204040" rel="nofollow">http://forum.nginx.org/read.php?21,204040</a></p>
<p>
	Прошу обратить внимание разработчиков Cotonti на данное обсуждение, поскольку там затронуты явные минусы реализации работы со ссылками в движке. Советы непосредственно от автора Nginx. По-моему стоит прислушатся.</p>
]]></description>
			<pubDate>Thu, 02 Чер 2011 05:04:54 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/ua/forums?m=posts&q=6373&d=0#post29771]]></link>
		</item>
	</channel>
</rss>