PDA

Просмотр полной версии : Редирект mod_rewrite


N19hTW0lF
09.08.2009, 16:52
как создать редирект через mod_rewrite с помощью .htaccess:
- с папки http://xxx.ru/boom/ в http://boom.xxx.ru? (тоесть создать поддомен)
ЗЫ: проверяйте прежде чем постить

alwex
09.08.2009, 17:39
помню как то раз я смотрел, вроде такого нету, только создавать поддомен и там прописать пару строк в .htaccess

DirectoryIndex boom

mailbrush
09.08.2009, 17:51
Самое простое (Решение 1):
Options +FollowSymLinks +SymLinksIfOwnerMatch

rewriteengine on
RewriteCond %{REQUEST_URI} !^/sites(/.*)?$
RewriteCond %{HTTP_HOST} ^(www.)?(.*)$
RewriteCond /path_to_http_root/sites/%2 -d
RewriteRule (.*) sites/%2/$1 [L,QSA]

Достаточно добавить каталог в /sites/ чтобы заработало.

Ещё использовал вот такой вариант (Решение № 2):

В httpd.conf, в секции настроек виртуалхоста:
RewriteMap vhost txt:/projects/iwc/hosts.txt

В .htaccess (лежит в корне виртуалхоста)
Options +FollowSymLinks +SymLinksIfOwnerMatch

rewriteengine on
RewriteCond %{HTTP_HOST} ^(www.)?(.*)$
RewriteCond ${vhost:%2|NOT-FOUND} !=NOT-FOUND
RewriteCond /projects/iwc/sites/%2 -d
RewriteRule (.*) sites/%2/$1 [L,QSA]

Сам файл hosts.txt имеет вид:
alias_1.site -
alias_2.site -
alias_3.site -
nccmin.anything -

Минус в том, что нужно иметь доступ к httpd.conf
Плюс в том, что для расширения достаточно добавить новый субдомен в hosts.txt (можно не убирать исходники с /sites/, а только убрать строку из hosts.txt, чтобы временно отключить домен).

eLWAux
09.08.2009, 19:29
mailbrush, ЗЫ: проверяйте прежде чем постить
уверен, что не проверил.
после изменения httpd.conf рестарт апача не нужен разве?

N19hTW0lF
09.08.2009, 19:54
помню как то раз я смотрел, вроде такого нету, только создавать поддомен и там прописать пару строк в .htaccess
ну есть решение. бесплатные хостинги за секунду создают субдомен