Маскировка поддомена через htaccess - PullRequest
2 голосов
/ 28 сентября 2011

EDITED

Я установил на своем сервере зону поддомена dns с подстановочными знаками и хотел бы, чтобы каждый поддомен загружал содержимое / users / direcotry, используя .htaccess и mod-переписать.

Я бы хотел, чтобы URL-адрес оставался неизменным в панели браузера, чтобы он отображал:

http://username.domian.com/../../

при отображении содержимого:

http://www.domain.com/users/username/../../

ДополнительноЯ хотел бы перенаправить (изменить URL) на версию субдомена, если к URL-версии URL обращаются.

Я не слишком знаком с правилами перезаписи модов, и любая помощь будет принята с благодарностью!

Спасибо.

1 Ответ

2 голосов
/ 29 сентября 2011

Попробуйте это:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com$
RewriteCond %1 !=www
RewriteRule ^(.*)$ http://www.domain.com/users/%1/$1 [R=302,L]

Если пользователь посетит tom.domain.com/directory1/directory2/directory3/file.html, он будет перенаправлен (URL будет изменен в браузере) на www.domain.com/users/tom/directory1/directory2/directory3/file.html.

Если это не такто, что вы действительно после (поскольку я немного запутался в вашей «замаскированной» концепции), пожалуйста, объясните ваши требования лучше, чтобы я мог скорректировать правило.


ОБНОВЛЕНИЕ: Чтобы сохранить URL-адрес в браузере без изменений:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_URI} !^/users/
RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com$
RewriteCond %1 !=www
RewriteRule ^(.*)$ /users/%1/$1 [L]

Есть одна проблема , хотя: если directory1 будет называться users (например, tom.domain.com/users/directory2/directory3/file.html), то это не будет работать- это цена, которую вы платите за переписывание. Решение: переименовать users во что-то уникальное (например, users_dir_123_abc и т. Д. - www.domain.com/users_dir_123_abc/tom/users/directory2/directory3/file.html).

...