Как я могу использовать "mod rewrite", чтобы перенаправить путь к папке на поддомен, но без перенаправления браузера? - PullRequest
3 голосов
/ 28 февраля 2009

У меня есть файл, который я хочу перенаправить на поддомен, используя 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

Ответы [ 2 ]

2 голосов
/ 28 февраля 2009

I THINK это будет делать то, что вы хотите:

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/

1 голос
/ 28 февраля 2009

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

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 префикс /.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...