<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: mod_rewrite и серверные переменные &#037;&#123;VAR&#125;</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID8/6120.html</link>
    <description>хай все!&lt;br&gt;&lt;br&gt;Хочу создать сайт следующей структуры:&lt;br&gt;/ - корень&lt;br&gt;/usr/user1&lt;br&gt;/usr/user2&lt;br&gt;/usr/user3&lt;br&gt;...&lt;br&gt;те набор пользовательских диров&lt;br&gt;Юзеры ходят через авторизацию апача (htpasswd) - имя авторизованного юзера я&lt;br&gt;вижу в переменной &#037;&#123;REMOTE_USER&#125;&lt;br&gt;&lt;br&gt;Пишу в корне такой .htaccess:&lt;br&gt;RewriteBase /&lt;br&gt;RewriteCond &#037;&#123;REMOTE_USER&#125; !^$&lt;br&gt;RewriteRule !^usr/&#037;&#123;REMOTE_USER&#125;/.*$ usr/&#037;&#123;REMOTE_USER&#125;/&lt;br&gt;&lt;br&gt;В условии (Cond) на всякий случай проверяю авторизацию, &lt;br&gt;суть правила (Rule) в том, что если юзер идет не в свой дир, (а диры соответствуют именам), то сервак принудительно его редиректит.&lt;br&gt;&lt;br&gt;Все вроде бы логично, но на практике это приводит к зацикливанию редиректа. После &lt;br&gt;долгих танцев с бубном и просмотра rewritelog до меня доперло, что mod_rewrite не хавает подсовыемые переменные в паттерны*, причем как для RewriteRule так и для RewriteCond.&lt;br&gt;Если в паттерне я пропишу фиксированные строки (реальные диры) - то все замечательно.&lt;br&gt;&lt;br&gt;Из мана:&lt;br&gt;RewriteRule Pattern Substitution&lt;br&gt;RewriteCond TestString CondPattern&lt;br&gt;В обоих случ</description>

<item>
    <title>mod_rewrite и серверные переменные &#037;&#123;VAR&#125; (Владислав)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID8/6120.html#18</link>
    <pubDate>Thu, 21 May 2009 12:39:58 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;база юзеров создается и ведется отдельно в виде passwd файла при помощи &lt;br&gt;&amp;gt;&amp;gt;&amp;gt;тулзы htpasswd &lt;br&gt;&amp;gt;&amp;gt;&amp;gt;покажите как у вас прописан юзер &lt;br&gt;&amp;gt;&amp;gt;&lt;br&gt;&amp;gt;&amp;gt;))))) да это я опечатался)) юзер прописан в .htpasswd в том же &lt;br&gt;&amp;gt;&amp;gt;каталоге. &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;ну тода по логам смотрите авторизировал ли юзер &lt;br&gt;&amp;gt;и реврайт лог придется таки изучать - если на чужом хосте - &lt;br&gt;&amp;gt;то вопрос вполне решает &lt;br&gt;&lt;br&gt;так и не поняли в чем дело. Остановились на таком конфиге&lt;br&gt;&lt;br&gt;#RewriteCond &#037;&#123;REMOTE_USER&#125; !^$&lt;br&gt;#RewriteCond $1&amp;lt;&amp;gt;&#037;&#123;REMOTE_USER&#125; !^(&#091;^&amp;lt;&#093;+)&amp;lt;&amp;gt;&#092;1$&lt;br&gt;#RewriteRule ^(&#091;^/&#093;+)/ /client/&#037;&#123;REMOTE_USER&#125;/ &#091;R,L&#093;&lt;br&gt;RewriteCond &#037;&#123;REMOTE_USER&#125; !^$&lt;br&gt;RewriteRule !^&#091;^/&#093;+/ /client/&#037;&#123;REMOTE_USER&#125;/ &#091;R,L&#093;&lt;br&gt;&lt;br&gt;по идее оба правила должны работать, но на практике работает тока последнее (у хостера видимо сервак глючный). Поэтому пришлось сделать так, а в каждой хоме юзера создавать свой отдельный htaccess чтобы чужой не зашел. А редирект работает.&lt;br&gt;&lt;br&gt;Спасибо за помощь!&lt;br&gt;</description>
</item>

<item>
    <title>mod_rewrite и серверные переменные &#037;&#123;VAR&#125; (Pahanivo)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID8/6120.html#17</link>
    <pubDate>Wed, 20 May 2009 12:05:46 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;1) да, в .htaccess прописан юзер 1 &lt;br&gt;&amp;gt;&amp;gt;&lt;br&gt;&amp;gt;&amp;gt;стоп стоп - что значит прописан в htaccess??? &lt;br&gt;&amp;gt;&amp;gt;база юзеров создается и ведется отдельно в виде passwd файла при помощи &lt;br&gt;&amp;gt;&amp;gt;тулзы htpasswd &lt;br&gt;&amp;gt;&amp;gt;покажите как у вас прописан юзер &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;))))) да это я опечатался)) юзер прописан в .htpasswd в том же &lt;br&gt;&amp;gt;каталоге. &lt;br&gt;&lt;br&gt;ну тода по логам смотрите авторизировал ли юзер&lt;br&gt;и реврайт лог придется таки изучать - если на чужом хосте - то вопрос вполне решает&lt;br&gt;</description>
</item>

<item>
    <title>mod_rewrite и серверные переменные &#037;&#123;VAR&#125; (Владислав)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID8/6120.html#16</link>
    <pubDate>Wed, 20 May 2009 06:16:15 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;2) в вашем htaccess нет больше реврайтов?&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;3) внутри подпапок нет своих htaccess и редиректов?&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;4) включайте реврайт лог и смотрите что и как он пишет, ищите правило которое работает &amp;gt;не так как надо.&lt;br&gt;&amp;gt;&amp;gt;&lt;br&gt;&amp;gt;&amp;gt;1) да, в .htaccess прописан юзер 1 &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;стоп стоп - что значит прописан в htaccess??? &lt;br&gt;&amp;gt;база юзеров создается и ведется отдельно в виде passwd файла при помощи &lt;br&gt;&amp;gt;тулзы htpasswd &lt;br&gt;&amp;gt;покажите как у вас прописан юзер &lt;br&gt;&lt;br&gt;))))) да это я опечатался)) юзер прописан в .htpasswd в том же каталоге.&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>mod_rewrite и серверные переменные &#037;&#123;VAR&#125; (Pahanivo)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID8/6120.html#15</link>
    <pubDate>Wed, 20 May 2009 06:11:20 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;&amp;gt;гипотетически:&lt;br&gt;&amp;gt;&amp;gt;1) при ваших /client/1 /client/2 - 1 и 2 соответствуют именам реальных юзеров в &amp;gt;htaccess?&lt;br&gt;&amp;gt;&amp;gt;2) в вашем htaccess нет больше реврайтов?&lt;br&gt;&amp;gt;&amp;gt;3) внутри подпапок нет своих htaccess и редиректов?&lt;br&gt;&amp;gt;&amp;gt;4) включайте реврайт лог и смотрите что и как он пишет, ищите правило которое работает &amp;gt;не так как надо.&lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;1) да, в .htaccess прописан юзер 1 &lt;br&gt;&lt;br&gt;стоп стоп - что значит прописан в htaccess???&lt;br&gt;база юзеров создается и ведется отдельно в виде passwd файла при помощи тулзы htpasswd&lt;br&gt;покажите как у вас прописан юзер&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>mod_rewrite и серверные переменные &#037;&#123;VAR&#125; (Владислав)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID8/6120.html#14</link>
    <pubDate>Wed, 20 May 2009 05:12:08 GMT</pubDate>
    <description>&amp;gt;написал потом заметил: &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;попробуйте во так &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;RewriteCond &#037;&#123;REMOTE_USER&#125; !^$ &lt;br&gt;&amp;gt;RewriteCond $1&amp;lt;&amp;gt;&#037;&#123;REMOTE_USER&#125; !^(&#091;^&amp;lt;&#093;+)&amp;lt;&amp;gt;&#092;1$&lt;br&gt;&amp;gt;RewriteRule ^client/(&#091;^/&#093;+)/ /client/&#037;&#123;REMOTE_USER&#125;/ &#091;R,L&#093; &lt;br&gt;&amp;gt;RewriteCond &#037;&#123;REMOTE_USER&#125; !^$ &lt;br&gt;&amp;gt;RewriteRule !^client/&#091;^/&#093;+/ /client/&#037;&#123;REMOTE_USER&#125;/ &#091;R,L&#093; &lt;br&gt;&lt;br&gt;Так не работает. Циклится. На этой (последней) строчке:&lt;br&gt;RewriteRule !^client/&#091;^/&#093;+/ /client/&#037;&#123;REMOTE_USER&#125;/ &#091;R,L&#093;&lt;br&gt;&lt;br&gt;Вот весь .htaccess:&lt;br&gt;&lt;br&gt;AuthName &quot;..my realm...&quot;&lt;br&gt;AuthType Basic&lt;br&gt;AuthUserFile /path/to&lt;br&gt;Require valid-user&lt;br&gt;Satisfy All&lt;br&gt;&lt;br&gt;RewriteEngine on&lt;br&gt;RewriteBase /&lt;br&gt;&lt;br&gt;RewriteCond &#037;&#123;REMOTE_USER&#125; !^$ &lt;br&gt;RewriteCond $1&amp;lt;&amp;gt;&#037;&#123;REMOTE_USER&#125; !^(&#091;^&amp;lt;&#093;+)&amp;lt;&amp;gt;&#092;1$&lt;br&gt;RewriteRule ^client/(&#091;^/&#093;+)/ /client/&#037;&#123;REMOTE_USER&#125;/ &#091;R,L&#093;&lt;br&gt;RewriteCond &#037;&#123;REMOTE_USER&#125; !^$&lt;br&gt;RewriteRule !^client/&#091;^/&#093;+/ /client/&#037;&#123;REMOTE_USER&#125;/ &#091;R,L&#093;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt;гипотетически:&lt;br&gt;&amp;gt;1) при ваших /client/1 /client/2 - 1 и 2 соответствуют именам реальных юзеров в &amp;gt;htaccess?&lt;br&gt;&amp;gt;2) в вашем htaccess нет больше реврайтов?&lt;br&gt;&amp;gt;3) внутри подпапок нет своих htaccess и редиректов?&lt;br&gt;&amp;gt;4) включа</description>
</item>

<item>
    <title>mod_rewrite и серверные переменные &#037;&#123;VAR&#125; (Pahanivo)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID8/6120.html#13</link>
    <pubDate>Wed, 20 May 2009 03:57:27 GMT</pubDate>
    <description>написал потом заметил:&lt;br&gt;&lt;br&gt;попробуйте во так&lt;br&gt;&lt;br&gt;RewriteCond &#037;&#123;REMOTE_USER&#125; !^$ &lt;br&gt;RewriteCond $1&amp;lt;&amp;gt;&#037;&#123;REMOTE_USER&#125; !^(&#091;^&amp;lt;&#093;+)&amp;lt;&amp;gt;&#092;1$&lt;br&gt;RewriteRule ^client/(&#091;^/&#093;+)/ /client/&#037;&#123;REMOTE_USER&#125;/ &#091;R,L&#093;&lt;br&gt;RewriteCond &#037;&#123;REMOTE_USER&#125; !^$&lt;br&gt;RewriteRule !^client/&#091;^/&#093;+/ /client/&#037;&#123;REMOTE_USER&#125;/ &#091;R,L&#093;&lt;br&gt;</description>
</item>

<item>
    <title>mod_rewrite и серверные переменные &#037;&#123;VAR&#125; (Pahanivo)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID8/6120.html#12</link>
    <pubDate>Wed, 20 May 2009 03:53:50 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;require valid-user &lt;br&gt;&amp;gt;RewriteEngine on &lt;br&gt;&amp;gt;RewriteBase / &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;RewriteCond &#037;&#123;REMOTE_USER&#125; !^$ &lt;br&gt;&amp;gt;RewriteCond $1&amp;lt;&amp;gt;&#037;&#123;REMOTE_USER&#125; !^(&#091;^&amp;lt;&#093;+)&amp;lt;&amp;gt;&#092;1$&lt;br&gt;&amp;gt;RewriteRule ^client/(&#091;^/&#093;+)/ /client/&#037;&#123;REMOTE_USER&#125;/ &#091;R,L&#093; &lt;br&gt;&amp;gt;RewriteRule !^client/&#091;^/&#093;+/ /client/&#037;&#123;REMOTE_USER&#125;/ &#091;R,L&#093; &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Падает в рекурсию и всё тут. В чем дело?&lt;br&gt;&lt;br&gt;хм, оч странно&lt;br&gt;у меня правда .htaccess лежит в корне (хотя сомнительно - разницы в этом не вижу)&lt;br&gt;мозг с утра не робит поэтому вспомнить как все это робит не получилось ))&lt;br&gt;&lt;br&gt;мой рабочий htaccess:&lt;br&gt;&lt;br&gt;AuthType Basic&lt;br&gt;AuthName &quot;....my some realm...&quot;&lt;br&gt;AuthUserFile /my_path/to/passwd&lt;br&gt;Require valid-user&lt;br&gt;Satisfy All&lt;br&gt;&lt;br&gt;RewriteEngine On&lt;br&gt;&lt;br&gt;RewriteBase /&lt;br&gt;RewriteCond &#037;&#123;REMOTE_USER&#125; !^$&lt;br&gt;RewriteCond &#037;&#123;REMOTE_USER&#125; !^!.+$&lt;br&gt;RewriteCond $1&amp;lt;&amp;gt;&#037;&#123;REMOTE_USER&#125; !^(&#091;^&amp;lt;&#093;+)&amp;lt;&amp;gt;&#092;1$&lt;br&gt;RewriteRule ^usr/(&#091;^/&#093;+)/ /usr/&#037;&#123;REMOTE_USER&#125;/ &#091;R,L&#093;&lt;br&gt;RewriteCond &#037;&#123;REMOTE_USER&#125; !^$&lt;br&gt;RewriteCond &#037;&#123;REMOTE_USER&#125; !^!.+$&lt;br&gt;RewriteRule !^usr/&#091;^/&#093;+/ /usr/&#037;&#123;REMOTE_USER&#125;/ &#091;R,L&#093;&lt;br&gt;RewriteCond &#037;&#123;REMOTE_USER&#125; ^!.+$&lt;br&gt;RewriteRul</description>
</item>

<item>
    <title>mod_rewrite и серверные переменные &#037;&#123;VAR&#125; (Владислав)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID8/6120.html#11</link>
    <pubDate>Tue, 19 May 2009 23:06:49 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;неугадал ))) &lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;Но флажки R,L все равно нужны, т.е. я был частично прав =) &lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;возможны варианты и без флагов ) &lt;br&gt;&amp;gt;&amp;gt;&lt;br&gt;&amp;gt;&amp;gt;Можно подробнее рассказать в чем суть, а то у меня почему-то еще &lt;br&gt;&amp;gt;&amp;gt;добавляет полный путь до корня перед http:xxx.ddd&#092;usr&#092;&#092;etc&#092;...&#092;usr&#092;&#092;usr&#092;..=&#092;&#092; &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;мож для начала изложишь свою задачу и свои варианты &lt;br&gt;&lt;br&gt;Привет! Попробовал сделать как Вы говорите, но ничего не выходит. Ситуация аналогичная. Есть корень сайта /. Надо, чтобы на странице /client по итогам авторизации юзера редиректило на /client/1, /client/2 и т.д.&lt;br&gt;&lt;br&gt;Вот .htaccess в дире /client&lt;br&gt;&lt;br&gt;require valid-user&lt;br&gt;RewriteEngine on&lt;br&gt;RewriteBase /&lt;br&gt;&lt;br&gt;RewriteCond &#037;&#123;REMOTE_USER&#125; !^$&lt;br&gt;RewriteCond $1&amp;lt;&amp;gt;&#037;&#123;REMOTE_USER&#125; !^(&#091;^&amp;lt;&#093;+)&amp;lt;&amp;gt;&#092;1$&lt;br&gt;RewriteRule ^client/(&#091;^/&#093;+)/ /client/&#037;&#123;REMOTE_USER&#125;/ &#091;R,L&#093;&lt;br&gt;RewriteRule !^client/&#091;^/&#093;+/ /client/&#037;&#123;REMOTE_USER&#125;/ &#091;R,L&#093;&lt;br&gt;&lt;br&gt;Падает в рекурсию и всё тут. В чем дело?&lt;br&gt;</description>
</item>

<item>
    <title>mod_rewrite и серверные переменные &#037;&#123;VAR&#125; (Pahanivo)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID8/6120.html#10</link>
    <pubDate>Sun, 25 Jan 2009 12:37:55 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;Принцип ясен - просто &#037;&#123;VAR&#125; не подставляется в первый регекс и его &lt;br&gt;&amp;gt;&amp;gt;&amp;gt;нужно получить из RewriteCond. &lt;br&gt;&amp;gt;&amp;gt;&lt;br&gt;&amp;gt;&amp;gt;неугадал ))) &lt;br&gt;&amp;gt;&amp;gt;&amp;gt;Но флажки R,L все равно нужны, т.е. я был частично прав =) &lt;br&gt;&amp;gt;&amp;gt;&lt;br&gt;&amp;gt;&amp;gt;возможны варианты и без флагов ) &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Можно подробнее рассказать в чем суть, а то у меня почему-то еще &lt;br&gt;&amp;gt;добавляет полный путь до корня перед http:xxx.ddd&#092;usr&#092;&#092;etc&#092;...&#092;usr&#092;&#092;usr&#092;..=&#092;&#092; &lt;br&gt;&lt;br&gt;мож для начала изложишь свою задачу и свои варианты&lt;br&gt;</description>
</item>

</channel>
</rss>
