|
|
|
|
|
для: Sfinks
(19.06.2012 в 08:34)
| | Пробовал PT поставить, что-то не работает.
RewriteRule ^каталог/ - [L]
RewriteCond %{HTTP_HOST} ^каталог\.сайт\.su$
RewriteCond %{DOCUMENT_ROOT}/каталог%{REQUEST_URI} -d
RewriteRule [^/]$ %{REQUEST_URI}/ [PT,L]
RewriteCond %{HTTP_HOST} ^каталог\.сайт\.su$
RewriteRule (.*) каталог/$1 [PT,L,QSA]
|
Вообще даже сайт/каталог перестал открываться.
Нельзя где-нибудь в логах там посмотреть всю цепочку переадресаций?
И вообще, можно тупо насильно заменить каталог.сайт/товар на сайт/каталог/товар и перейти по этой ссылке? | |
|
|
|
|
|
|
|
для: Sfinks
(19.06.2012 в 08:34)
| | Сделал, как у хостера написано, учел кодировки. Перенаправляет как надо, но прямо в настоящую подпапку - роутер не успевает перехватывать. Что, придется кидать запросы прямо на него или класть в папки свой php-скрипт? У htaccess получается самый высокий приоритет. Ну да, ведь на роутер приходят уродливые внутренние ссылки, это мне снаружи кажется, что там типа папки.
UPD: А вот флаги в конце rewriterule, там нельзя как-нибудь поставить, чтобы он не физическую папку открывал, а просто переходил по адресу? | |
|
|
|
|
|
|
|
для: Follower
(16.06.2012 в 10:56)
| | > И еще, у меня домен кириллический, мне в условие правила писать в utf8 или punycode?
Это сложнее....
Имена доменов в
RewriteCond %{HTTP_HOST} ^каталог\.сайт\.su$
| нужно писать в punycode, т.к. на сервер приходит именно такое закодированное название.
А вот имена каталогов и путей в
RewriteRule (.*) каталог/$1 [L,QSA]
| нужно писать в 16тиричных кодах по таблице ASCII.
Я обычно перевожу так (допустим слово каталог):
вбиваю в адресной строке браузера https://www.google.ru/?q=каталог
адрес переводится в такой: https://www.google.ru/?q=%EA%E0%F2%E0%EB%EE%E3
беру из этого %EA%E0%F2%E0%EB%EE%E3 и заменяю % на \x
получаем:
RewriteRule (.*) \xEA\xE0\xF2\xE0\xEB\xEE\xE3/$1 [L,QSA]
|
| |
|
|
|
|
|
|
|
для: Sfinks
(10.06.2012 в 21:34)
| | У меня сейчас ссылки вида сайт/index.php/каталог/товар-detail
Detail надо будет убрать, там будут каталоги второго уровня вложенности.
Он ведь будет скрыто переадресовывать каталог.сайт/подкаталог/товар на сайт/index.php/каталог/подкаталог/товар?
Разобрался вроде с псевдонимами, теперь пишет не "сервер не найден", а "страница не найдена".
Нельзя ли не передавать запрос на роутер, а сразу пользоваться результатом его работы? То есть правило типа
RewriteCond %{HTTP_HOST} ^subdomain1\.site\.ru$ [NC]
RewriteRule ^(.*)$ index.php/subdomain1 [L,QSA]
|
И еще, у меня домен кириллический, мне в условие правила писать в utf8 или punycode?
UPD: Вот, сделал ссылки без index.php. Они сейчас выглядят как сайт/каталог/ и сайт/каталог/страница.html И нашел у хостера галочку "Создать поддомен в свою папку", которая переадресует запросы к поддоменам на основной сайт. Там же есть генератор содержимого htaccess для переадресации в папки. Он такое пишет:
RewriteRule ^каталог/ - [L]
RewriteCond %{HTTP_HOST} ^каталог\.сайт\.su$
RewriteCond %{DOCUMENT_ROOT}/каталог%{REQUEST_URI} -d
RewriteRule [^/]$ %{REQUEST_URI}/ [R,L]
RewriteCond %{HTTP_HOST} ^каталог\.сайт\.su$
RewriteRule (.*) каталог/$1 [L,QSA]
|
И он мне выдает "The requested URL / was not found on this server." | |
|
|
|
|
|
|
|
для: Sfinks
(10.06.2012 в 21:34)
| | Выглядит прямо как то, что мне надо. Создал пробную запись в днс, завтра попробую. | |
|
|
|
|
|
|
|
для: Follower
(10.06.2012 в 15:12)
| | > Я могу попинать этот роутер, ссылки будут вообще без index.php, будут выглядеть прям как папки.
Т.е. вы умеете с ним обращаться? С router.php. Да? Я правильно понимаю? А то мне с его структурой ну совсем не хочется разбираться.
Тогда так. Предположим нам нужно перенаправить subdomain1.site.ru и subdomain2.site.ru на router.php, который должен разрулить дальнейшее поведение сайта.
Саписи CNAME, которые указывают на основной домен нужно создать заранее, т.к. чтобы они заработали, нужно дождаться когда обновятся DNS-сервера. А это обычно занимает от 4 до 24 часов. Тут уж ниче не поделаешь.
В htaccess в корне сайта пропишите такое:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^subdomain1\.site\.ru$ [NC]
RewriteRule ^(.*)$ router.php?catalog=subdomain1&request_uri=$1 [L,QSA]
RewriteCond %{HTTP_HOST} ^subdomain2\.site\.ru$ [NC]
RewriteRule ^(.*)$ router.php?catalog=subdomain2&request_uri=$1 [L,QSA]
|
В результате при обращении по адресу, например:
http://subdomain1.site.ru/mashiny/audi/?model=A4
Произойдет скрытая от пользователя переадресация на
http://site.ru/router.php?catalog=subdomain1&request_uri=mashiny%2Faudi%2F&model=A4
Дальше вам разбираться с этим "роутером". | |
|
|
|
|
|
|
|
для: Sfinks
(10.06.2012 в 14:20)
| | У меня вообще нет сейчас .htaccess, я его удалил, так как он выдавал ошибки после моих экспериментов. Тем не менее, в адресной строке у меня не сайт/index.php?=ekjrhge349g9e8y а сайт/index.php/категория/товар. Я не знаю,может это и не виртуемарт делает, но кто тогда?
Вот из какой-то статьи из результатов гугла:
"Еще очевидным преимуществом является то, что, благодаря router.php абсолютно все ссылки в практически любом компоненте/модуле, отображающем товары для Virtuemart, даже сторонних разработчиков, превращаются в SEO ЧПУ ссылки (там, где используется ст. функция JRoute::_())"
А на гугле меня не забанили, но мануалов конкретно вот про домены третьего уровня применительно к htaccess я не нашел.
Я могу попинать этот роутер, ссылки будут вообще без index.php, будут выглядеть прям как папки. Но уж с поддоменами помогите мне, пожалуйста. | |
|
|
|
|
|
|
|
для: Follower
(10.06.2012 в 10:20)
| | > Не хотите объяснять мне сами - дайте ссылку на толковый мануал
Вообще, после таких предъяв, конечно, желание пропадает....
> лежит файл router.php, который и создает видимость папок
Еще раз говорю, видимость папок создает модуль апача mod_rewrite. В результате его работы в файл router.php попадает путь, который был введен пользователем в адресной строке браузера, в виде элемента массива $_GET.
> ЧТО мне надо написать в htaccess в корне сайта?
Покажите что у вас сейчас есть в хтакцесе? Интересуют строки, начинающиеся с RewriteRule и RewriteCond.
> дайте ссылку на толковый мануал, где все это есть
А вас что, забанили на гугле?
> компонент каталога/емагазина для джумлы
Значит быстрее всего вам помогли бы на форуме Джумлы!
Но раз уж хотите здесь (если еще хотите, конечно), то будем разбираться. Ибо Я НЕ ПОЛЬЗОВАЛСЯ ни джумлой ни, тем более, маркетом этим. | |
|
|
|
|
 33.5 Кб |
|
|
для: Sfinks
(07.06.2012 в 23:15)
| | Для общего развития. Virtuemart - компонент каталога/емагазина для джумлы. Так вот там в папке лежит файл router.php, который и создает видимость папок, как я понимаю.
Вот мы, наконец, и дошли до сути вопроса.
ЧТО мне надо написать в htaccess в корне сайта? Не хотите объяснять мне сами - дайте ссылку на толковый мануал, где все это есть. Но конечно, лучше будет, если вы прямо здесь мне приведете пример. | |
|
|
|
|
|
|
|
для: Follower
(07.06.2012 в 23:01)
| | > мне нужны каталоги virtuemart, коих вообще не существует - он их видимость сам своим роутером создает.
Я не знаю, что такое virtuemart, но врядли он там чет роутером делает =) Каталоги которых нет - это ЧПУ. Организуются они в .htaccess. Посмотрите в своем .htaccess строки
RewriteEngine On
RewriteRule что-то там еще
| есть? Это и есть то, что создает ЧПУ.
Значит, чтобы вам организовать поддомены, которые ссылаются на каталоги, которых нет, вам нужно (как вы верно нашли в своей панели) создать для нужных поддоменов CNAME записи, чтобы обращение к этим поддоменам приводило к попаданию в корень основного домена. А в .htaccess основного домена уже прописать правила, которые будут отслеживать с какого поддомена обращение и (незаметно для пользователя) редиректить на скрипты, отвечающие за эти поддомены. Получится тот эффект который вам нужен. | |
|
|
|
|