Как перенаправить каталог в субдомен, а субдомен www - в субдомен не www? - PullRequest
1 голос
/ 16 марта 2012

ПРИМЕЧАНИЕ: Использование только параметра <VirtualHost>.

Как перенаправить каталог (скажем, example.com/groups/) в поддомен (скажем, groups.example.com), а также www этого субдомена (www.groups.example.com) на не-www URL этого субдомена (groups.example.com)?


Точно (⇒ обозначает 'следует 301 перенаправить на '):

example.com/groups/groups.example.com

www.groups.example.comgroups.example.com


Я прочитал это, используя <VirtualHost>лучше, чем все те правила перенаправления, которые обычно используются (т. е. использование механизма перенаправления довольно тяжело для дискового ввода-вывода).Итак, я хотел бы решить вышеуказанную проблему, используя <VirtualHost> в .htaccess / httpd.conf, если это возможно.Спасибо!

1 Ответ

1 голос
/ 16 марта 2012

Примерно так должно работать

<VirtualHost *:80>
    ServerName example.com 
    ServerAlias groups.example.com www.groups.example.com

    RewriteEngine on
    # example.com/groups/ -> groups.example.com
    RewriteCond %{SERVER_NAME}  ^example\.com$
    RewriteRule ^/(\w+)/?$  http://$1.example.com [R=301,L]

    # www.groups.example.com -> groups.example.com
    RewriteCond %{SERVER_NAME}  ^www\.(\w+)\.example\.com$
    RewriteRule ^/(.*)$ http://%1.example.com/$1 [R=301,L]
</VirtualHost>

или специально для групп

<VirtualHost *:80>
    ServerName example.com 
    ServerAlias groups.example.com www.groups.example.com

    RewriteEngine on
    # example.com/groups/ -> groups.example.com
    RewriteCond %{SERVER_NAME}  ^example\.com$
    RewriteRule ^/groups/?$  http://groups.example.com [R=301,L]

    # www.groups.example.com -> groups.example.com
    RewriteCond %{SERVER_NAME}  ^www\.groups\.example\.com$
    RewriteRule ^/(.*)$ http://groups.example.com/$1 [R=301,L]
</VirtualHost>
...