Можно ли сделать субдомены с подстановочными знаками без перенаправления (флаг R)? - PullRequest
0 голосов
/ 18 февраля 2011

Я думаю, что я настроил подстановочные знаки в моем домене, потому что он работает для меня:

RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteCond %{HTTP_HOST} ^([^.]+)\.example\.com
RewriteRule ^(.*)$ http://www.example.com/member.php?username=%1 [R,L]

Но только если я перенаправляю с флагом R или R = 301. Я хотел бы иметь виртуальный поддомен, а пользователь этого не замечает. subdomain.example.com и не меняйте URL в строке.

Я попробовал следующее:

RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteCond %{HTTP_HOST} ^([^.]+)\.example\.com
RewriteRule ^(.*)$ http://www.example.com/member.php?username=%1 [L]

Без флага R. Но я получаю внутреннюю ошибку сервера. В чем проблема? Может ли кто-нибудь помочь мне, пожалуйста?

1 Ответ

1 голос
/ 18 февраля 2011

Вы не можете перенаправить на абсолютный URL без перенаправления.

Раздел «Виртуальный пользовательский хост» в этом документе решает вашу проблему.

Если вы user.example.com и www.example.com указали на одну и ту же машину, тогда

RewriteCond %{HTTP_HOST} !^www.example.com [NC] 
RewriteCond %{HTTP_HOST} ^([^.]+).example.com 
   RewriteRule ^(.*)$      /member.php?username=%1 [L]

Но что вы планируете делать с группой, захваченной в RewriteRule

...