2013-12-20 5 views
3

Я пытаюсь создать URL-адрес страницы пользователя user1.mydomain.com, и мне нужно перенаправить его на http://mydomain.com/index.php/users/index/user1.Перенаправление динамического (переменного) субдомена в контроллер с использованием .htaccess

В моем файле .htaccess, у меня есть следующие:

RewriteCond %{HTTP_HOST} ^(.*)\.mydomain\.com$ 
RewriteRule (.*) http://mydomain.com/index.php/users/index/$1 [L] 

Я получаю «это веб-страница недоступна» из Google Chrome, по крайней мере, не ошибка сервера.

Что я делаю неправильно? Кроме того, в шаблоне rewriterule, как он знает, что $ 1 относится к субдомену, а не к полному URL-адресу? Это потому, что у меня есть %{HTTP_HOST} в моей rewritecond?

+1

Параметр 'RewriteCond' захватывает в'% 1 ', а не '$ 1'. Это может быть все, что вам нужно здесь - все остальное выглядит правильно. –

+0

Но вам нужно добавить URI на него, как 'http: // user1.example.com/path' ->' http: // example.com/index.php/users/index/user1/path'? –

+0

@MichaelBerkowski На данный момент мне не нужно ничего добавлять, я просто хочу, чтобы субдомен конвертировался на страницу пользователя без параметров – Pacemaker

ответ

2

Захваченные переменные из RewriteCond обозначаются как %1, %2 и т.д. ...

Попробуйте это правило:

RewriteCond %{HTTP_HOST} ^([^.]+)\.mydomain\.com$ [NC] 
RewriteRule^http://mydomain.com/index.php/users/index/%1 [L,R] 
+0

По-прежнему такой же результат (эта страница недоступна) с вашими правилами, можете ли вы предложить что-нибудь еще? Благодарю. – Pacemaker

+0

Правило правильное, но ваша настройка может отличаться от ожидаемой. Является ли DocumentRoot для 'user1.mydomain.com' таким же, как' mydomain.com'? – anubhava

+0

Также, что находится выше .htaccess? Что происходит, когда вы вводите 'http: // user1.mydomain.com /' с приведенным выше правилом? – anubhava

Смежные вопросы