2017-02-16 27 views
1

Может ли кто-нибудь помочь в следующем переписывании для apache?Как переписать субдомен и subsubdomain в параметр?

Представьте меня есть домен domain.com

Что я хочу:

Если люди просить www.domain.com затем вернуть www.domain.com (т.е. index.php в моем корневом каталоге)

Если люди запрашивать subA.subB.domain.com затем вернуть www.domain.com?sub=subA.subB

Если люди запросить sub.d omain.com затем вернуться www.domain.com?sub=sub

Если люди запрашивать DOMAIN.COM затем вернуть www.domain.com

Я знаю правила здесь, чтобы работать над ним самостоятельно. У меня есть. Например, аналогичный вопрос here просит перенаправить на/subA/subB - но даже если бы я понял этот ответ, я бы не знал, как его адаптировать к тому, что мне нужно, что является? Sub = subA.subB. Я много лет пытался понять, как переписываться. Хорошо,/sobstory -off.

ответ

0

будет переписан субдомены:

RewriteEngine on 
RewriteCond %{QUERY_STRING} !^sub= 
RewriteCond %{HTTP_HOST} ^(?!www\.)(.+)\.domain\.com$ 
RewriteRule ^(/?)$ $1?sub=%1 

Заменить домен в зависимости от обстоятельств. Убедитесь, что у каждого . есть косая черта перед ним, как сейчас.

Он будет работать только на индексной странице. Если вы хотите, чтобы он работал, когда есть что-то после domain.com/, дайте мне знать.

Что касается создания http://domain.com работы, предлагаю перенаправить это на www.domain.com, чтобы вы не получали повторяющиеся проблемы с содержанием из поисковых систем. Есть ли что с этим (добавьте его ниже выше):

RewriteCond %{HTTP_HOST} =domain.com 
RewriteRule^http://www.domain.com%{REQUEST_URI} [R=301,L] 

Нет необходимости для косой черты перед точками на том.

Сообщите мне, если что-то из этого не подходит для вас.


приписка

Оригинал автора на основе комментариев:

выше решение является правильным для вопроса, но предполагает следующие конфигурации на сервере:

  • Субдомен * .domain.com уже был добавлен и указывает на корень документа для сайта
  • В конфигурации DNS настроен «Запись» для * .domain.com и указывает на IP-адрес сервера
+0

Спасибо. Я добавил directoryIndex index.php в конец. В настоящее время, если я вхожу в домен com.com в адресной строке, моя домашняя страница возвращается и адресная строка обновляется на www.domain.com. Однако, если я вхожу в subA.subB.domain.com, я получаю «Firefox не может найти сервер на subA.subB.domain.com». Точно так же только для subA.domain.com. ? – youcantryreachingme

+1

Есть две вещи, которые вам нужно сделать, чтобы эта часть работала. Прежде всего, установите свой хостинг, чтобы обслуживать либо * .domain.com, либо конкретные субдомены, которые вам нужны, а затем, если он не обрабатывается вашим хостингом, настройте записи DNS. – SuperDuperApps

+0

Извините, это выше моего понимания настройки сервера. Мой сайт размещен на Hostgator, поэтому я обращаюсь к функциям через CPanel. Я ожидаю добавить новые поддомены динамически - то есть, у меня просто будут данные, хранящиеся на веб-сайте. Когда кто-то запрашивает sub1.sub2, сайт проверяет наличие соответствующих данных, и если да, то обслуживайте его. Я планирую добавлять данные непрерывно - поэтому не может заранее знать все поддомены. Я буду искать cpanel для настройки * .domain.com, но если вы можете быстро отслеживать меня на обоих шагах, которые будут оценены. Сознавая это, теперь решается на новый вопрос ... – youcantryreachingme