Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как я могу использовать мод rewrite для перенаправления пути к папке на поддомен, но без перенаправления браузера?

Автор вопроса: CommunityОтветов: 2

У меня есть файл, который я хочу перенаправить на субдомен с помощью mod_rewrite. Например, я хотел бы перенаправить запрос для http://www.mydomain.com/xyz на поддомен xyz.example.com

Однако я не хочу отправлять перенаправление в браузер (поэтому он не знает, что страница отличается).

КСТАТИ. xyz - это запись CNAME, указывающая на www.otherdomain.com.

Другой пример, просто для пояснения. Если в браузер вводится http://www.mydomain.com/xyz/something, я хочу, чтобы Apache возвращал содержимое http://xyz.mydomain.com/something

apachemod-rewrite

Ответы

Ответ 1 · рейтинг 2 · UnkwnTech

Я ДУМАЮ, это сделает то, что вы хотите:

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^(.*?)/(.*?)$ http://$1.mydomain.com/$2

В нынешнем виде он будет перенаправлять КАЖДЫЙ запрос, который отправляется в подпапку, поэтому, если вы ссылаетесь на изображения или css, которые находятся в подпапке, он также перепишет их, если вы хотите перечислить только определенные вещи, которые вы могли бы использовать это

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^(blog|store|other)/(.*?)$ http://$1.mydomain.com/$2

Это перенаправит только mydomain.com/blog/mydomain.com/store/ и mydomain.com/other/

Ответ 2 · рейтинг 1 · Gumbo

Если оба домена находятся на одном компьютере и доступны через файловую систему, вам следует пойти по этому пути. Например:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$
RewriteRule ^([^/]+)/(.*) /absolute/path/to/subdomains/$1/$2

Если это не так, вам понадобится прокси:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$
RewriteRule ^([^/]+)/(.*) http://$1.example.com/$2 [P]

Эти примеры предназначены для файла .htaccess. Если вы хотите использовать их в httpd.conf, добавьте к шаблонам RewriteRule префикс /.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы