.htaccess Подстановочные Субдомены

Я пытаюсь реализовать решение с использованием поддоменов .htaccess и подстановочных знаков, чтобы

http: //subdomain.example.co отображается наhttp: //example.com/index.php/accounts/subdomain. Мои правила выглядят примерно так:

RewriteCond %{HTTP_HOST} !www.example.com [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).example.com [NC]
RewriteRule ^(.*/) /index.php [PT,L]

Что работает, но игнорирует все остальное. Когда я пытаюсь добавить что-либо к правилу, например:

RewriteRule ^(.*/) /index.php/hello [PT,L]

Я получаю 500 внутренняя ошибка сервера. Как мне заставить это работать?

Ответы на вопрос(3)

который я использую для перенаправления поддоменов на свой сайт. Я не претендую на то, что это лучшая практика, но она работает;

RewriteCond %{HTTP_HOST} ^(.*)\.com$ [NC]
RewriteCond %1 !^(www)\.example$ [NC]
RewriteRule ^.*$ http://www.example.com/index.php/accounts/%1/ [R=301,L]
 Zahymaka29 июн. 2009 г., 20:27
Это работает, но я не хочу перенаправлять пользователей на сайт. Спасибо все равно.
 Mathew29 июн. 2009 г., 20:40
Сейчас я не могу это проверить, но разве это не сработает, если заменить [R = 301, L] на [PT, L]?
Решение Вопроса

наверное, нужно исключитьindex.php из вашего правила:

RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9-]+)\.example\.com$ [NC]
RewriteRule !^index\.php($|/) index.php/accounts/%2%{REQUEST_URI} [PT,L]
 Zahymaka29 июн. 2009 г., 23:48
Спасибо, я использовал что-то еще (-f и -d), но это также работает, поэтому я собираюсь сохранить его для дальнейшего использования.

Попробуй поменятьRewriteRule в

RewriteRule ^/(.*)$ /index.php/accounts/%1/$1 [PT]

Это перезапишет URL на тот, который включает поддомен и исходный URI запроса.

РЕДАКТИРОВАТ: может быть, это должно быть

RewriteRule ^(.*)$ /index.php/accounts/%1/$1 [PT]

как уже упоминалось в комментариях.

 Zahymaka29 июн. 2009 г., 20:32
Я попробовал это, но похоже, что оно не срабатывает, даже когда я меняю index.php на что-то другое.
 Zahymaka29 июн. 2009 г., 23:48
Увидеть ниже. Спасибо за помощь
 David Z29 июн. 2009 г., 21:47
Ой ... может быть, вам нужно использовать шаблон ^ (. *) $ (Без косой черты), когда он находится в .htaccess. (Во всяком случае, я бы рекомендовал поместить эти директивы в основной файл конфигурации сервера, если вы можете.)

Ваш ответ на вопрос