Задача 1: (наипростейшая…)
http://site.xx/forum и http://site.xx/forum/* должны явно (прямо в строке браузера) переадресоваться (редиректнуться) на http://forum.site.xx/*
* значит что любой путь и параметры должны быть сохранены ;) То есть http://site.xx/forum/showforum.php?param1=1¶m2=2 должно превратится в http://forum.site.xx/showforum.php?param1=1¶m2=2Задача 2: (сложнее...)
Дано: (Direct Admin, это вам не cPanel ;))
http://site.xx/ официально кажет на сервере в /domains/site.xx/public_html/
http://site.yy/ официально кажет на сервере в /domains/site.yy/public_html/
Нужно:
http://site.XX/* (всё что угодно, НО КРОМЕ ПОДПАПОК) должно НЕявно (так, чтоб никто не догадался) переадресоваться (КАЗАТЬ) на внутреннюю папку /domains/site.YY/public_html/
(не забываем, что http://site.xx/test/ должно по прежнему казать в /domains/site.XX/public_html/test/Кто-нибудь знает Решения?
Все пишется внутри конфигурации виртуального хоста site.xx.RewriteEngine on
RewriteLog /var/log/rewrite.log
RewriteLogLevel 9 # это чтоб видеть, почему не работает>Задача 1: (наипростейшая…)
>http://site.xx/forum и http://site.xx/forum/* должны явно (прямо в строке браузера) переадресоваться (редиректнуться) на
>http://forum.site.xx/*
>* значит что любой путь и параметры должны быть сохранены ;) То
>есть http://site.xx/forum/showforum.php?param1=1¶m2=2 должно превратится в http://forum.site.xx/showforum.php?param1=1¶m2=2RewriteRule ^/forum$ http://forum.site.xx/ [L,R]
RewriteRule ^/forum/(.*)$ http://forum.site.xx/$1 [L,R]>Задача 2: (сложнее...)
>Дано: (Direct Admin, это вам не cPanel ;))
>http://site.xx/ официально кажет на сервере в /domains/site.xx/public_html/
>http://site.yy/ официально кажет на сервере в /domains/site.yy/public_html/
>Нужно:
>http://site.XX/* (всё что угодно, НО КРОМЕ ПОДПАПОК) должно НЕявно (так, чтоб никто
>не догадался) переадресоваться (КАЗАТЬ) на внутреннюю папку /domains/site.YY/public_html/
>(не забываем, что http://site.xx/test/ должно по прежнему казать в /domains/site.XX/public_html/test/RewriteCond %{REQUEST_URI} ^/([^/]+)
RewriteCond /domains/site.xx/public_html/%1 !-d
RewriteRule ^/(.*)$ /domains/site.yy/public_html/$1 [L]только убедись, что site.xx имеет право показывать файлы из /domains/site.yy каталога.
Кстати, ты не указал, что делать, если при запросе http://site.xx/test/ /domains/site.xx/public_html/test/ не существует. В данном случае будет показан /domains/site.yy/public_html/test/
>RewriteRule ^/forum$ http://forum.site.xx/ [L,R]
>RewriteRule ^/forum/(.*)$ http://forum.site.xx/$1 [L,R]Не уверен, но кажется, что в строке браузера от этих правил ничего не изменится и Задача 1 не будет решена.
>>RewriteRule ^/forum$ http://forum.site.xx/ [L,R]
>>RewriteRule ^/forum/(.*)$ http://forum.site.xx/$1 [L,R]
>
>Не уверен, но кажется, что в строке браузера от этих правил ничего
>не изменится и Задача 1 не будет решена.Флаг R как-раз указывает на внешний редирект.
>Флаг R как-раз указывает на внешний редирект.Да, извиняюсь, недосмотрел :)
в лог записалось это:
/home/account/domains/site.xx/public_html/.htaccess: RewriteLog not allowed hereМожет надо не в /site.xx/public_html класть .htaccess ?
По любому, даже forum не редиректнулся... Да и вообще, наверное для forum то логичнее отдельный .htaccess в /home/account/domains/site.xx/public_html/forum/ положить?! (я это имел в виду...)
Надеюсь на помощь.
Оказалось, что первая задача решается намного легче и удачнее:
в .htaccess пишется: "Redirect /forum/ http://forum.site.xx/"
и всё ;) Проблем со слешем нет и все параметры передаются! Красота.а вот со второй пока глухо ;(
прописал:
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/([^/]+)
RewriteCond /domains/tver.bz/public_html/%1 !-d
RewriteRule ^/(.*)$ /domains/tver.ws/public_html/$1 [L]и мне апач выдал:
You don't have permission to access / on this server.Не понимаю как мне этот доступ разрешить... :(
>Оказалось, что первая задача решается намного легче и удачнее:Конечно :) Именно поэтому надо расписывать условия задачи, а не указывать заранее методы ее решения.
Ты же хотел именно mod_rewrite (см. тему).>и мне апач выдал:
>You don't have permission to access / on this server.Перечитай еще раз, чего я написал:
1) Все писать в конфиге, а не в .htaccess
2) Разрешить доступ к /domains/tver.bz/public_html/, например, с помощью DirectoryИ смотри логи, а не выдаваемую страничку, там инфы гораздо больше.
P.S.: кстати, ты все-таки засветил имя своего сайта, хотя очень не хотел делать этого в первом посте :)
В том то и дело что у меня к конфиге доступа нет ;( Могу только .htaccess в директориях мутить. ВОТ!
А можно как-нибудь через .htaccess доступ дать к папкам?
Может что в /domains/tver.ws/public_html/ можно прописать чтоб из /domains/tver.bz/public_html/ доступ был?..З.Ы. Гы :) Да я на каком-то форуме по апачу спросил, написав открыто, а мне предупреждение за рекламу и объяснение что нужно писать скрыто, а за ссылки на их форуме платить... Я их нах послал и меня забанили. Лол. Да и глянул - все так пишут, подумал что и тут так.
>В том то и дело что у меня к конфиге доступа нет
>;( Могу только .htaccess в директориях мутить. ВОТ!
>А можно как-нибудь через .htaccess доступ дать к папкам?
>Может что в /domains/tver.ws/public_html/ можно прописать чтоб из /domains/tver.bz/public_html/ доступ был?..Нет, нельзя. Принципиально. Иначе ты получил бы возможность читать любые файлы любых сайтов на этом серваке.
Попробуй обходной путь: внутри /domains/tver.ws/public_html/ сделай symlink на /domains/tver.bz/public_html/ и mod_rewrite'ом поренаправляй на него. Только не забудь вставить правило, что запрос на этот symlink не попадает под обычные правила, иначе (возможно) зациклишься.
Но это не будет работать если у тебя симлинки запрещены.>З.Ы. Гы :) Да я на каком-то форуме по апачу спросил, написав
>открыто, а мне предупреждение за рекламу и объяснение что нужно писать
>скрыто, а за ссылки на их форуме платить... Я их нах
>послал и меня забанили. Лол. Да и глянул - все так
>пишут, подумал что и тут так.Здесь это пофиг :) Здесь и откровенная реклама встречается. Просто многие не хотят светить свою внутренюю информацию.
...я, конечно, понимаю, что для человека так легко пишущего про Rewrite и SymLink могут показаться странными мои вопросы, но тем не менее:
Что это за странный SymLink (всё, что пишут в конференциях, так только вопросы по этой теме)? Как этот SymLink куда прописать и где есть доки на эту тему (на русском)?З.Ы. А аська у Вас есть? Если да, то не могли бы вы мне стукнуть в номер ICQ 7767767. Если не трудно конечно, Там бы более быстро и обсудили мою проблему... Я б в долгу не остался ;)
>...я, конечно, понимаю, что для человека так легко пишущего про Rewrite и
>SymLink могут показаться странными мои вопросы, но тем не менее:
>Что это за странный SymLink (всё, что пишут в конференциях, так только
>вопросы по этой теме)? Как этот SymLink куда прописать и где
>есть доки на эту тему (на русском)?Симлинк это очень просто ;)
ln -s /domains/tver.bz/public_html/ /domains/tver.ws/public_html/newsite
Потом проверь, что есть доступ к http://tver.ws/newsite (правильность отображения страничек не требуется, главное чтобы хоть чего нибудь показал). Если работает - то соотв. меняй RewriteRule.
Если не работает - то только обращатся к админу.>З.Ы. А аська у Вас есть? Если да, то не могли бы
>вы мне стукнуть в номер ICQ 7767767. Если не трудно конечно,
>Там бы более быстро и обсудили мою проблему... Я б в
>долгу не остался ;)Аська есть, но мне лень консультации по ней давать :)
Я и здесь-то отвечаю по мере наличия времени и желания :)
Ну вот :(((
Ничего не понятно...
Где писать? в .htaccess? В какой директории? Как править Rule? Что такое newsite? Мои задачи ещё помните? :)
Я ж в этом профан, а мне советы как бывалому... Это несправедливо ;)))
>Я ж в этом профан, а мне советы как бывалому... Это несправедливо
>;)))Ну тогда начнем по-порядку.
1. Какой у тебя доступ к серверу: ftp, ssh, ...?
>>Я ж в этом профан, а мне советы как бывалому... Это несправедливо
>>;)))
>
>Ну тогда начнем по порядку.
>1. Какой у тебя доступ к серверу: ftp, ssh, ...?ВОТ! Спасибо за понимание ;)
Доступ по FTP, SMTP, IMAP, WebMail ;) и панель управления DirectAdmin (там дофига всего - полное описание панели на русском тут: http://site-helper.ru/)Каждый домен там имеет отдельную папку (в отличии от cPanel, где это не возможно). Папка на домен это ОЧЕНЬ хорошо, но если один сайт на 2-5 доменах одновременно, то не копии же класть!? Нужно как-то на главный всё заредиректить... :(
>Доступ по FTP, SMTP, IMAP, WebMail ;) и панель управления DirectAdmin (там
>дофига всего - полное описание панели на русском тут: http://site-helper.ru/)Ага, значит шела у тебя нет. Тогда последняя попытка:
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/([^/]+)
RewriteCond /domains/tver.bz/public_html/%1 !-d
RewriteRule ^/(.*)$ http://tver.ws/$1 [L,P]И смотри у логах сайта tver.ws, к чему идет обращение.
Если не работает (а это очень вероятно) - то только в морг.
>>В том то и дело что у меня к конфиге доступа нет
>>;( Могу только .htaccess в директориях мутить. ВОТ!
>>А можно как-нибудь через .htaccess доступ дать к папкам?
>>Может что в /domains/tver.ws/public_html/ можно прописать чтоб из /domains/tver.bz/public_html/ доступ был?..
>
>Нет, нельзя. Принципиально. Иначе ты получил бы возможность читать любые файлы любых
>сайтов на этом серваке.
>Попробуй обходной путь: внутри /domains/tver.ws/public_html/ сделай symlink на /domains/tver.bz/public_html/ и mod_rewrite'ом поренаправляй
>на него. Только не забудь вставить правило, что запрос на этот
>symlink не попадает под обычные правила, иначе (возможно) зациклишься.
>Но это не будет работать если у тебя симлинки запрещены.
>получил я доступ SSH
сделал symlink с /domains/tver.bz/public_html/redirect на /domains/tver.ws/public_html/
http://tver.bz/rewrite/ работает на ура!
Теперь мне, по идее, надо было реврайтом направить на линк (так как он в своей директории, если я правильно понял Ваш пример)... и я в /domains/tver.bz/public_html/.htaccess написал:
RewriteEngine on
Options +FollowSymLinks
RewriteCond %{REQUEST_URI} ^/([^/]+)
RewriteCond /%1 !-d
RewriteRule ^/(.*)$ /redirect/$1 [L]но не пашет :( видимо не правильно я поправил RewriteRule или RewriteCond.
FollowSymLinks разрешено, проверил.
>http://tver.bz/rewrite/ работает на ура!
>RewriteRule ^/(.*)$ /redirect/$1 [L]Ну так /rewrite/ или /redirect/ ?
И что значит "не пашет"?Попробуй вот так, с явным редиректом - увидишь, во что он переписывает адрес:
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/([^/]+)
RewriteCond /domains/tver.bz/public_html/%1 !-d
RewriteRule ^(.*)$ http://tver.ws/$1 [L,R]
>>http://tver.bz/rewrite/ работает на ура!
>>RewriteRule ^/(.*)$ /redirect/$1 [L]
>
>Ну так /rewrite/ или /redirect/ ?
>И что значит "не пашет"?
>
redirect... Глючу :)
Ура! Заработало ЭТО: (в /domains/tver.bz/public_html/.htaccess)
RewriteEngine on
Options +FollowSymLinks
RewriteCond %{REQUEST_URI} ^/([^/]+)
RewriteCond /domains/tver.bz/public_html/%1 !-d
RewriteRule ^(.*)$ /redirect/$1 [L]и ещё: (в /domains/tver.ws/public_html/.htaccess)
RewriteEngine offКак теперь добавить чтоб http://tver.bz/ и http://tver.bz/forum/ тоже редирактились? (второй RewriteCond отменяет Rewrite, если путь это папка, а это как раз папки... Что ещё добавить в правила? Только чтобы конкретные папки, а не все!)
А то сейчас дже http://tver.bz/index.php работает, а http://tver.bz/ нет :(
>Как теперь добавить чтоб http://tver.bz/ и http://tver.bz/forum/ тоже редирактились? (второй RewriteCond отменяет
>Rewrite, если путь это папка, а это как раз папки... Что
>ещё добавить в правила? Только чтобы конкретные папки, а не все!)
>
>А то сейчас дже http://tver.bz/index.php работает, а http://tver.bz/ нет :(Впиши нужные редиректы перед RewriteCond и не забудь про флаг [L], чтобы он дальше не искал. Если я еще не запутался в твоих сайтах, то:
>RewriteEngine on
>Options +FollowSymLinksRewriteRule ^forum$ http://forum.tver.ws/ [L,R]
RewriteRule ^forum/(.*)$ http://forum.tver.ws/$1 [L,R]
RewriteRule ^$ /redirect/ [L]>RewriteCond %{REQUEST_URI} ^/([^/]+)
>RewriteCond /domains/tver.bz/public_html/%1 !-d
>RewriteRule ^(.*)$ /redirect/$1 [L]
>и ещё: (в /domains/tver.ws/public_html/.htaccess)
>RewriteEngine offСтранно, это не должно влиять.
Подскажите
надо вот что
esnm поддомен test.test.ru
и есть папка test.ru/test
вот сейчас сайт доустпен и проиндексирован и так и так
но мне надо чтобы както через mod rewrite настроит чтобы кто зашел по старому адресу test.ru/test/ .... автоматически был на test.test.ru
>Подскажите
>надо вот что
>esnm поддомен test.test.ru
>и есть папка test.ru/test
>вот сейчас сайт доустпен и проиндексирован и так и так
>но мне надо чтобы както через mod rewrite настроит чтобы кто зашел
>по старому адресу test.ru/test/ .... автоматически был на test.test.ruНу так и читай этот тред. Пример с http://site.xx/forum
Проводилось два решения.
>>Подскажите
>>надо вот что
>>esnm поддомен test.test.ru
>>и есть папка test.ru/test
>>вот сейчас сайт доустпен и проиндексирован и так и так
>>но мне надо чтобы както через mod rewrite настроит чтобы кто зашел
>>по старому адресу test.ru/test/ .... автоматически был на test.test.ru
>
>Ну так и читай этот тред. Пример с http://site.xx/forum
>Проводилось два решения.вот я сделал
RewriteEngine on
RewriteRule ^/shop$ http://shop.travels-ua.com/ [L,R]
RewriteRule ^/shop/(.*)$ http://shop.travels-ua.com/$1 [L,R]не работает
должно щас по идее при наборе travels-ua.com/shop/ перекидывать на http://shop.travels-ua.comно это не делается
>вот я сделал
>
>RewriteEngine on
>RewriteRule ^/shop$ http://shop.travels-ua.com/ [L,R]
>RewriteRule ^/shop/(.*)$ http://shop.travels-ua.com/$1 [L,R]
>
>не работает
>должно щас по идее при наборе travels-ua.com/shop/ перекидывать на http://shop.travels-ua.com
>
>но это не делается1. RewriteLogLevel 9 и стотреть внимательно.
1a. Если нет доступа и настройкам хоста, то поставить Апач дома и тренироваться на кошечках.
2. Скорее всего - лишний слеш:
RewriteRule ^shop$ http://shop.travels-ua.com/ [L,R]
RewriteRule ^shop/(.*)$ http://shop.travels-ua.com/$1 [L,R]