Создать субдомен VHost & Forward


8

Гуру Со

У меня есть простой файл .htaccess, где я только перенаправить не www на www для моего веб-приложения. Теперь то, что я хочу сделать, это

  1. Создайте новый vhost, такой как http: //subdomain.mydomain.tld
  2. Создайте редирект для любого, кто заходит на этот поддомен в папку моего приложения, например app / webroot / subdomain

Мой текущий .htaccess выглядит так

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTP_HOST} !^www\.mydomain\.tld [NC]
    RewriteRule ^(.*)$ http://www.mydomain.tld/$1 [R=301.L]
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ app/webroot/$1 [QSA,L]
</IfModule>

Как бы я пошел об этом? Могу ли я сделать все это в моем файле .htaccess или мне также нужно связываться с GoDaddy? Я предпочитаю не делать этого в приложении, если это имеет смысл.

Я использую Ubuntu 10.04 + Apache 2.2.14-5

Спасибо

Ответы:


18

Вот что вам нужно поместить в ваш файл .htaccess:

RewriteEngine on
# redirect mydomain.tld to www.mydomain.tld
RewriteCond %{HTTP_HOST} ^mydomain\.tld [NC]
RewriteRule ^(.*)$ http://www.mydomain.tld/$1 [R=301,L]

# default website
RewriteCond %{HTTP_HOST} ^www\.mydomain\.tld$ [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app/webroot/$1 [NC,QSA,L]

# subdomain to folder
RewriteCond %{HTTP_HOST} ^(sub|subfolder)\.domain\.com$ [NC]
RewriteCond %1 !^www$ [NC]
RewriteRule ^(.*)/?$ http://www.domain.com/%1/$1 [NC,QSA,L]

Спасибо, мне нужно сначала настроить vhost для этого субдомена?

При желании вы всегда можете использовать его с тем же DocumentRoot, что и WWW. Вы также можете изменить ServerAlias ​​вашего www vhost, чтобы добавить больше доменов, например: ServerAlias ​​domain.com www.domain.com sub.domain.com.

Извините, я n00b с apache2. Итак, 2 вещи - 1. Я хочу разрешить только фиксированный поддомен, а не ([a-z0-9]) в соответствии с вашим кодом, я должен просто изменить это на ^ (sub)? 2. Как мне снова установить vhost (слишком n00b для вас? Извините)?

1) посмотреть мой обновленный ответ. 2) Вы создали запись поддомена? Вы указали на то же место, что и www?

1) Я смотрю на это и пока не могу найти ни одного изменения, я серьезно потерян? 2) В этом файле .htaccess больше ничего нет, кроме того, что я показал.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.