The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Выражение в .htaccess для Mod_Rewrite"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [Проследить за развитием треда]

"Выражение в .htaccess для Mod_Rewrite"  
Сообщение от Gular email(ok) on 25-Ноя-07, 10:38 
Приветствую.

Подскажите пожалуйста правильные выражения для создания автоматических субдоменов.
Принцип такой:

domain.com/
|--site1/
|  |----index.html
|--site2/
|  |----index.html
|--index.html

То есть, существует domain.com. Хочется сделать так, чтобы, создавая каталоги внутри него, они автоматически становились бы поддоменами. То есть, чтобы можно было зайти как на http://(www.)domain.com/site1 и http://(www.)domain.com/site2, так и на http://(www.)site1.domain.com/ и http://(www.)site1.domain.com/.

Накопал множество документации. Есть даже весьма похожие на эту ситуацию. Но всё равно я что-то не могу составить RewriteCond и RewriteRule :(

Да. Как я прочитал, это делается с помощью mod_rewrite.

В DNS добавил А-запись *.domain.com. В httpd.conf в разделе <VirtualHost> в ServerAlias добавил *.domain.com. Далее в корне, т.е. внутри domain.com создал .htaccess для mod_rewrite, но никак не въеду :( Подскажите пожалуйста.

Принцип даже понятен. "Те, кто запрашивает http://(www.)site1.domain.com/, должны перенаправляться на http://(www.)domain.com/site1/, но адрес в браузере не должен добавлять ../site1/ к http://(www.)site1.domain.com/".

То есть, запросили http://(www.)site1.domain.com/index.html, и он должен идти в http://(www.)domain.com/site1/index.html, в URL показывая http://(www.)site1.domain.com/index.html. Таким же образом надо проделывать и со всеми другими каталогами внутри domain.com.

Подскажите, правильно ли я понимаю? И подскажите, как это реализовать, пожалуйста?

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Выражение в .htaccess для Mod_Rewrite"  
Сообщение от Gular email(ok) on 25-Ноя-07, 15:47 
У меня написаны рег. выражения вида

RewriteCond %{HTTP_HOST} ^.*\.domain.com$ [NC]
RewriteRule ^(.*)$ http://domain\.com/$1

При нём, при запросе http://domain.com/site1/ показывает страницу. А при запросе http://site1.domain.com/ идёт

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

То идёт тот же Internal Server Error. Чувствую, я где-то близок.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Выражение в .htaccess для Mod_Rewrite"  
Сообщение от Gular email(ok) on 25-Ноя-07, 18:57 
Изменил на такое:

RewriteCond %{HTTP_HOST} ^.+\.domain.com$
RewriteRule ^(.*)$ http://domain.com/%{HTTP_HOST}$1

Теперь при запросе http://site1.domain.com/ получаю то же самое, что и при запросе http://domain.com/site1.domain.com/. То биш, работает.
Теперь возникли такие вещи:
1. Не хотелось бы показывать изменение в адресной строке. Чтобы http://site1.domain.com/ не заменяло на http://domain.com/site1.domain.com/ при обработке. Надо как бы оставить http://site1.domain.com/ в строке.
2. При этом виде .htaccess нужно создавать каталоги вида site1.domain.com, а использовать (и создавать впредь) текущие site1, site2, ... siten.
Дело в том, что в текущем домене уже есть не один каталог, как раз все вида site1. Можно конечно скрипт написать, наверное, для переименования всех каталогов, но ведь наверно можно изменить рег. выражение.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Выражение в .htaccess для Mod_Rewrite"  
Сообщение от Gular email(ok) on 27-Ноя-07, 16:45 
Создал такое содержание .htaccess:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com$ [NC]
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/(.+)
RewriteRule ^(.*) %{HTTP_HOST}/$1
RewriteRule ^www\.(.*)\.domain\.com(.*) /$1$2

Практически то, что нужно. Но рано я радоваться стал.
Погонял этот .htacces и выяснил, что это работает лишь для index.html, то есть, запрос http://site1.domain.com/index.html работает, то есть мой текущий .htaccess обрабатывает только запросы к индексу. А запрос http://site1.domain.com/page.html не работает.

Как тут быть?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру