2012-05-04 3 views
2

У меня есть мод рерайт, что в настоящее время перенаправляетсубдомен перенаправить URL с mod_rewrite и htaccess?

domain.com/folder/user

к

domain.com/folder.php?username=user

с использованием:

RewriteRule^папка /(.+)$ folder.php? Имя пользователя = $ 1 [QSA, L]

Что мне нужно сделать, однако, перенаправить http://user.domain.com/ на http://www.domain.com/folder.php?username=user. И если это возможно, я могу исключить некоторые поддомены (например, переадресацию почты и т. Д.).

Как мне это сделать? Любая помощь очень ценится :)

+0

Как настроены виртуальные серверы на вашем хосте? – hakre

+0

Не уверен, правильно ли я понимаю, но я использую Apache, и они установлены в httpd.conf ... У меня есть доступ к корневому уровню, хотя если это поможет. – user1227914

+0

Ниже вы найдете ответ, который показывает, как управлять этим, пока все домены указывают на одну и ту же область. – hakre

ответ

1

Как это работает:

  • Экстракт user из http://user.domain.com/ и сохранения обратной ссылки на него с RewriteCondition.
  • Имя хоста запроса хранится в Server-Variable.

    enter image description here Рисунок: Задняя ссылка потока через правило. В этом примере запрос для /test/1234 будет преобразован в /admin.foo?page=test&id=1234&host=admin.example.com. Source

  • В RewriteRule использовать RewriteCondition обратной ссылки «s.

  • Смотрите также примечание в RewriteRule разделе:

    Если вы хотите, чтобы соответствовать против имени хоста, порта или строку запроса, используйте RewriteCond с% {HTTP_HOST},% {SERVER_PORT}, или% {QUERY_STRING}, соответственно.

  • Настройте ваш (виртуальный) сервер для прослушивания всех доменов, которые вы хотите переписать, чтобы обеспечить, чтобы все запросы были переданы в тот же раздел/корень вашего сервера, на котором вы можете выполнить переписывание. В противном случае вам необходимо прокси-серверу.
Смежные вопросы