Необходимо отображать поддомен как URL, а не путь к каталогу

#.htaccess #redirect #subdomain

#.htaccess #перенаправление #поддомен

Вопрос:

Вчера я создал поддомен как www.subdomain.example.com. Это создало корневой каталог с именем поддомена. Теперь, когда я открываю www.subdomain.example.com он перенаправляется на www.example.com/subdomain. Как сделать так, чтобы мой URL-адрес не отображал путь к каталогу, т. е. в адресной строке он продолжал отображаться www.subdomain.example.com , при этом отображается содержимое из поддомена каталога. У меня есть учетная запись общего хостинга в hostgator. Спасибо за помощь

Ответ №1:

В вашем файле .htaccess отключите перенаправление и используйте mod_rewrite:

 RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www.)?subdomain.example.com$
RewriteCond %{REQUEST_URI} !^/subdomain
RewriteRule ^(.*)$ /subdomain/$1 [L]
  

Это проверяет, является ли запрашиваемый хост либо www.subdomain.example.com , либо subdomain.example.com удостоверяется, что запрос еще не начинается с /subdomain , и добавляет его в противном случае. Это перенаправляет внутренне на сервер, поэтому ваш браузер фактически не перенаправляется (в адресной строке все равно будет указано: subdomain.example.com).

Комментарии:

1. Только что решил проблему, код, указанный Джоном, правильный. я пытался загрузить файл .htaccess в root, в то время как я должен был загрузить в каталог поддомена. Одна небольшая правка, которую я внес в код jon, была в строке 3rd. Я указал полный путь к каталогу. итак, 3-я строка кода выглядела как RewriteContd %{REQUEST_URI)} example.com/subdomain

2. Странно, %{REQUEST_URI} не включает имя хоста или «http: //», это просто путь (например, /subdomain ). Это условие никогда не будет соответствовать.

3. Я включил полный путь с www . в мой файл .htaccess. Я только что заметил, что когда я пишу полный путь в области комментариев в stackoverflow, он удаляет www . part, но добавляет ссылку. Вот почему это кажется неправильным.. Я новичок в stackoverflow. Извините за промах