htaccess на основном домене не даёт работать на доп. домене

YZ
На сайте с 10.04.2001
Offline
119
1258

Здравствуйте коллеги!

Столкнулся с такой задачей, есть домен www.site1.ru, специально под него есть специфический .htaccess такого вида:


# -FrontPage-

IndexIgnore .htaccess */.??* *~ *# */HEADER* */README* */_vti*

RewriteEngine on
Options +FollowSymlinks
RewriteBase /

RewriteCond %{HTTP_HOST} !^www\.site1\.ru$ [NC]
RewriteRule ^(.*)$ http://www.site1.ru/$1 [R=301,L]

RewriteCond %{THE_REQUEST} (prosto_fraza-).* [NC]
RewriteRule ^(.*)\.html$ /?prosto_fraza=$1 [L]

RewriteRule ^(.*)\.htm$ $1.html [R=permanent]
...
#далее обычный набор для htaccess типа "allow from all" и т.п.

надо чтоб этот .htaccess не работал для других доменов в этом CPanel (в разделе "Дополнительные домены")

Т.е. продолжу по ситуации:

у хостера есть бонус, можно к основному домену "подселить" бесплатно ещё несколько дополнительных. Я "подселил" www.site2.ru. Итого видно на ftp:

www.site1.ru находится в public_html

www.site2.ru находится в public_html/site2.ru/

www.site1.ru и www.site2.ru имеют одни и те же DNS записи.

Сейчас .htaccess сайта www.site1.ru не даёт заходить на www.site2.ru а именно:

Набираю www.site2.ru, редиректит на http://www.site1.ru/site2.ru/ (что не есть хорошо, из за этого и весь вопрос)

Набираю www.site2.ru/index.html, Открывает как надо: http://www.site2.ru/index.html

Вопрос, как не меняя правила в .htaccess для основного домена на хостинге www.site1.ru, сделать в этом же .htaccess исключение для www.site2.ru?

Romka_Kharkov
На сайте с 08.04.2009
Offline
485
#1

Все достаточно просто, в настройках домена site1.ru надо указать домашнюю директории к примеру public_html/site1.ru А во втором случае public_html/site2.ru , я понимаю что при этом основной домен ссылается в public_html, но его можно так же изменить на public_html/site3.ru либо же site1&2 поднять на 1 уровень с public_html.

Можно конечно "ломать ноги" и "жрать кактусы, при этом описывая реврайтами исключения для соседних доменов, но IMHO надо делать 1 раз правильно, разнесите домены таким образом, что бы одни не находились в папке другого - это будет правильное решение, а на тему исключений в rewrite - кто-то подскажет кроме меня, так как это костыль.. :( Вы не забудьте что у вас еще ПС например индексируют ссылки вида site1.ru/site2.ru/ и внутри первого сайта в индекс попадут страницы второго... а если их 10 то десяти сайтов ;)

Есть около 15.000 ipv4 !!! (http://onyx.net.ua/price.php#ipv4) Качественный хостинг с 2005 года - лучшее клиентам! (http://onyx.net.ua/)
Логистик
На сайте с 31.12.2008
Offline
191
#2
Romka_Kharkov:
Все достаточно просто, в настройках домена site1.ru надо указать домашнюю директории к примеру public_html/site1.ru А во втором случае public_html/site2.ru , я понимаю что при этом основной домен ссылается в public_html, но его можно так же изменить на public_html/site3.ru либо же site1&2 поднять на 1 уровень с public_html.

ВСЁ это само собой, а вот если просто в поддиректорию поместить .htaccess со своим набор правил, то разве это так же не решит проблему?

Создание сайтов на заказ - http://htmlplus.ru || Конструктор адаптивных сайтов Wysiwyg Web Builder - обучение, уроки, консультации - http://wwbmaster.ru || Настройка ЭЦП || Настройка корпоративной почты
Romka_Kharkov
На сайте с 08.04.2009
Offline
485
#3
Логистик:
ВСЁ это само собой, а вот если просто в поддиректорию поместить .htaccess со своим набор правил, то разве это так же не решит проблему?

Конечно решит , однако если бы вы внимательно почитали то о чем пишет ТС, у вас бы не возникло ошибочной логики, его проблема выглядит обратным образом, у него верхстоящий .htaccess расположенный в папке public_html мешает работать нижестоящему сайту, расположенному в папке public_htrml/site2.ru/ по этому решение может быть исполнено только в исключении директории или URL нижестоящего сайта, что я лично называю костылем, проще и правильней разнести домены в разные , независимые друг от друга папки.

Логистик
На сайте с 31.12.2008
Offline
191
#4

После регистрации главный домен привязывается к корневой папке «public_html» и «указать» его на подпапку нельзя. Это неудобно, ведь все файлы сайта лежат в корне, а новые сайты будут располагаться в директориях основного. Есть отличное решение: вы перемещаете все файлы основного домена в любую поддиректорию, а в «public_html» создаете файл .htaccess со следующим содержанием:

RewriteEngine on

# измените надпись yourmaindomain.com на ваш домен

RewriteCond %{HTTP_HOST} ^(www.)?yourmaindomain.com$

# Измените 'subfolder' на папку, где будут находиться файлы основного домена

RewriteCond %{REQUEST_URI} !^/subfolder/

# Ничего не меняйте

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

# Измените 'subfolder' на папку, где будут находиться файлы основного домена

RewriteRule ^(.*)$ /subfolder/$1

# измените надпись yourmaindomain.com на ваш домен

# Измените 'subfolder' на папку, где будут находиться файлы основного домена

# Укажите файл по умолчанию (напр. index.php или index.html).

RewriteCond %{HTTP_HOST} ^(www.)?yourmaindomain.com$

RewriteRule ^(/)?$ subfolder/index.php [L]

YZ
На сайте с 10.04.2001
Offline
119
#5

Ребят, огромное спасибо!!! Получилось, воспользовался советом по размещению не в public_html/site2.ru, а в site2.ru, и всё, никаких проблем!

По умолчанию CPanel предлагает просто в public_html/site2.ru, вот и сбился с толку, полез копаться в настроенный под первый сайт htaccess... а тут все проще!

Romka_Kharkov
На сайте с 08.04.2009
Offline
485
#6
Yura_Z:
Ребят, огромное спасибо!!! Получилось, воспользовался советом по размещению не в public_html/site2.ru, а в site2.ru, и всё, никаких проблем!
По умолчанию CPanel предлагает просто в public_html/site2.ru, вот и сбился с толку, полез копаться в настроенный под первый сайт htaccess... а тут все проще!

Учение -свет, не учение - чуть свет на работу 🤪🤪🤪

---------- Добавлено 16.06.2014 в 22:22 ----------

Логистик:
После регистрации главный домен привязывается к корневой папке «public_html» и «указать» его на подпапку нельзя.

Зато можно указать остальные домены вне папки public_html :)

Логистик
На сайте с 31.12.2008
Offline
191
#7
Romka_Kharkov:

Зато можно указать остальные домены вне папки public_html :)

ну в принципе да, но чтобы не нарушать какую-то устоявшуюся систему и не объяснять амерbканской т.п. это, я перенаправляю основной домен из public_html в папку расположенную там же

таким образом все домены остаются в папке public_html, как по умолчанию и задумано в CPanel

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий