.htaccess требует WWW для домена, но разрешает субдомен, если существует без жесткого кодирования - PullRequest
2 голосов
/ 12 августа 2009

Я пытаюсь выяснить, как настроить набор правил .htaccess, который бы заставлял присутствовать "www" перед доменом, если он не указан изначально, но в то же время он не будет иметь никакого эффекта, если субдомен присутствует; все это без жесткого кодирования любого доменного имени, так что скрипт переносится на разные серверы и конфигурации.

EDIT:

Извините, я не смог объяснить это прямо в первом месте. Итак, мне нужно следующее:

http://example.com -> перенаправляет на http://www.example.com

http://www.example.com -> не перенаправляет

http://subdomain.example.com -> не перенаправляет

Ответы [ 2 ]

12 голосов
/ 12 августа 2009

Это mod_rewrite правило должно делать это для доменов второго уровня:

RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
1 голос
/ 12 августа 2009
RewriteCond %{HTTP_HOST} ^example\.org
RewriteRule ^ http://www.example.org%{REQUEST_URI} [L,R=301]

Это не будет перенаправлять субдомены, такие как mail.example.org

...