.htaccess - поддомен не работает с www - PullRequest
2 голосов
/ 04 мая 2011

Я вижу много вопросов об этом здесь на SO, поэтому я пишу здесь:

У меня есть домен www.example.com, и я настроил файл .htaccess для перенаправления всех example.com на www.example.com

Теперь я сделал (через интерфейс plesk 10) поддомен abc.example.com, и я хотел бы также иметь www.abc.example.com, поэтому я ввел (также в plesk) это:

www.abc.example.com.    CNAME   abc.example.com.

Но это не работает. Нужно ли перезагружать / перезапускать днс? (Если так, скажите, пожалуйста, как?) Или мне просто нужно подождать некоторое время, пока оно не распространится?

Так как упомянутое CNAME не работает, я также добавил .htaccess (который может быть неправильным (я знаю, не так уж много серверного человека :()) в папку abc, которая выглядит так:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^abc.example.com$
RewriteRule ^(.*)$ http://abc.example.com/$1 [R=301]

но без везения, поэтому, пожалуйста, пролите немного света.

Ответы [ 2 ]

1 голос
/ 05 мая 2011

Решение, которое сработало для меня в итоге:

В Plesk я сделал один subdomain.domain.com, указывающий на папку, скажем, abc , а затем я добавил www.subdomain.domain.com также через Plesk, но указал на тот же папка abc. Затем я добавил файл .htaccess в эту папку abc (где находятся все остальные файлы для этого субдомена), который теперь гарантирует, что все запросы к subdomain.domain.com перенаправляются на www.subdomain.domain.com. Вот мой файл .htaccess:

RewriteEngine On    
RewriteCond %{HTTP_HOST} !^www.subdomain.domain.com$ [NC]    
RewriteRule ^(.*)$ http://www.subdomain.domain.com/$1 [R=301,L]

Надеюсь, это поможет кому-то начать с таких вещей, как я.

Следует отметить, что идея указать домен www.subdomain внутри одной и той же папки принадлежит пользователю Bryan White на serverfault

0 голосов
/ 04 мая 2011

.htaccess должен быть таким:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^abc\.example\.com$ [NC]
RewriteCond %{SERVER_PORT} =80
RewriteRule ^(.*)$ http://abc.example.com/$1 [R=301,L]

RewriteEngine on
RewriteCond %{HTTP_HOST} !^abc\.example\.com$ [NC]
RewriteCond %{SERVER_PORT} =443
RewriteRule ^(.*)$ https://abc.example.com/$1 [R=301,L]

Однако DNS-запись для abc.example.com и www.abc.example.com может не распространяться. Вы должны дать это некоторое время (возможно, несколько часов), прежде чем проверить это.

Вы можете использовать nslookup на Windows или * nix , чтобы проверить, когда ваш домен доступен для мира.

...