.htaccess переписать поддомен - PullRequest
1 голос
/ 05 апреля 2010

Вот мой текущий код:

RewriteCond %{HTTP_HOST} !^example\.com [NC] 
#RewriteCond %{REQUEST_URI}!^something
RewriteCond %{HTTP_HOST} ^([^.]+)\.example\.com 
RewriteRule (.*) something/%1/$1 [QSA,L]

Моя цель - переписать http://*.example.com/whatever в http://example.com/something/*/whatever, предполагая, что * одинаково для обоих, а whatever одинаково для обоих. Тем не менее, я считаю, что это как-то вызывает бесконечный цикл, поэтому я добавил закомментированную строку (RewriteBase - / btw), но если я раскомментирую, тогда весь сайт представляет собой код ответа 500. Без этой строки только ошибка поддоменов.

Что я делаю не так, и как я могу это исправить? Я уже настроил сервер, чтобы все перенаправлялось в мою папку public_html.

РЕДАКТИРОВАТЬ: Для пояснения я пытаюсь сделать внутреннее перенаправление, а не внешний.

РЕДАКТИРОВАТЬ: Кажется, нет флага для внутреннего перенаправления. Есть ли место, где я могу увидеть фактическое сообщение об ошибке для сломанной rewriterule? Если бы я знал, что случилось, у меня был бы больше шансов исправить это.

Ответы [ 2 ]

2 голосов
/ 05 апреля 2010

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

RewriteCond %{HTTP_HOST} !^example\.com [NC] 
#RewriteCond %{REQUEST_URI}!^something
RewriteCond %{HTTP_HOST} ^([^.]+)\.example\.com 
RewriteRule (.*) http://example.com/something/%1/$1 [QSA,L]

Я надеюсь, что это поможет вам Джером ВАГНЕР

0 голосов
/ 06 апреля 2010

Я добавил флаг P (прокси) в правило, и оно сработало.

...