Изменить корень документа припаркованного домена?

Я столкнулся с проблемой, заключающейся в том, что мой веб-хост не предлагает дополнительные домены.

В настоящее время у меня есть доменное имя, указывающее на мои серверы имен.

Я зашел в cPanel, чтобы добавить дополнительный домен, который указывает на подкаталог, но все, что доступно в cPanel, — это припарковать домен в корне документа, который называется «public_html/».

Таким образом, трафик, исходящий из припаркованного домена, получит неправильный контент, что, очевидно, нехорошо.

У меня такое ощущение, что это невозможно, но могу ли я изменить корень документа припаркованного домена с «public_html/» на «public_html/sub-directory»?

Или, возможно, я могу отредактировать файл .htaccess, чтобы перенаправить трафик из припаркованного домена в подкаталог?

В основном я хочу этот адрес; www.припаркованный-домен.com/

Чтобы показать содержимое этого подкаталога; www.first-domain.com/parked-directory

Я надеюсь, что это возможно, иначе мне нужно посмотреть на новый веб-хостинг.

С уважением,

Дин.


person a-second-mix    schedule 11.04.2011    source источник
comment
Вам все еще нужен ответ на этот вопрос или вы его уже нашли?   -  person Book Of Zeus    schedule 15.10.2011
comment
Хороший вопрос, который я часто задавал себе. У меня есть доступ к дополнительным доменам, но они мне не нравятся из-за ненужных назначений пользователей и папок, в которых они нуждаются, и рассматривал это как возможное решение. Мне придется попробовать эти ответы, но мне было бы интересно узнать, как вы с этим справились.   -  person Madivad    schedule 18.11.2015


Ответы (3)


Добавьте следующее в ваш файл .htaccess:

RewriteRule ^parked-directory - [L]
RewriteCond %{HTTP_HOST} ^(www\.)?parked-domain\.com$ [NC]
RewriteRule ^(.*)$ parked-directory/$1 [L]
person Gerben    schedule 13.11.2011
comment
Этот ответ кажется слишком коротким и милым! Спасибо за это, как и в случае с ответом Грега, я с нетерпением жду возможности попробовать это сам, когда у меня будет несколько минут. Спасибо и вам, сэр :) - person Madivad; 18.11.2015
comment
обновление: чтобы изображения работали, перейдите на wp-admin/network/site-settings.php?id=2 (независимо от того, какой у вас идентификатор) и измените siteurl, включив в конце адрес parked-directory/. оставьте домашний URL как просто припаркованный-домен.com - person rothschild86; 25.07.2016

Хотя это не одобряется, можно динамически настроить подузлы припаркованных доменов с помощью mod_rewrite.

Вот пример .htaccess для мультихостинга через mod_rewrite с использованием динамического формата, который требует припаркованного-домена = имени подпапки и охватывает другие припаркованные домены на вашем сайте, которые перенаправляются или игнорируются.

# tell mod_rewrite to activate and give base for relative paths
  RewriteEngine on
  RewriteBase   /

# permanent redirect of unused parked domains so they do not try to resolve.
# only use this redirect if you want multiple names to point to another.
# otherwise, replace the rewrite rule with: RewriteRule . - [F,L]
  RewriteCond %{HTTP_HOST}   ^(www\.)?parked-domain1\.com$ [NC,OR]
  RewriteCond %{HTTP_HOST}   ^(www\.)?parked-domain2\.com$ [NC,OR]
  RewriteCond %{HTTP_HOST}   ^(www\.)?parked-domain3\.com$ [NC,OR]
  RewriteCond %{HTTP_HOST}   ^(www\.)?parked-domain4\.com$ [NC]
  RewriteRule ^(.*)$         http://main-site.com/$1 [L,R=301]

# if you have an active site in hosting root folder,
# then tell it not to look for a subfolder by skipping next rule
  RewriteCond %{HTTP_HOST}   ^(www\.)?main-site\.com [NC]
  RewriteRule ^(.*)$         - [S=1]

# the domain-name = sub-folder automation
# thus parked-domain5.com in /parked-domain5/
  RewriteCond %{HTTP_HOST}   ([^.]+)\.com
  RewriteCond %{REQUEST_URI} !^/%1
  RewriteRule ^(.*)$         %1/$1 [L]

# if you're hosting wordpress sites, this is a tweaked variant of the WP code.
# add the rest of this example only if:
#   1. main-site.com is a WP site
#   2. you remove .htaccess in subfolders
# if (1.) true, yet keeping subfolder .htaccess, uncomment next 2 lines:
# RewriteCond %{HTTP_HOST} !^(www\.)?main-site\.com [NC]
# RewriteRule ^(.*)$ - [S=1]
#### BEGIN WordPress, improved
# if this request is for "/" or has already been rewritten to WP 
  RewriteCond $1 ^(index\.php)?$ [OR]
# or if request is for image, css, or js file 
  RewriteCond $1 \.(gif|jpg|jpeg|png|css|js|ico)$ [NC,OR]
# or if URL resolves to existing file 
  RewriteCond %{REQUEST_FILENAME} -f [OR]
# or if URL resolves to existing directory 
  RewriteCond %{REQUEST_FILENAME} -d
# then skip the rewrite to WP 
  RewriteRule ^(.*)$ - [S=1]
# else rewrite the request to WP 
  RewriteRule . /index.php [L]
# END WordPress
person greg.arnott    schedule 07.04.2013
comment
хороший ответ, Грег, как я указал в своем комментарии на вопрос, меня это интересовало. Можете ли вы сообщить нам, почему это не одобряется? Я полагаю, это потому, что мы обходим встроенную функцию. Я понял большую часть вашего ответа и с нетерпением жду возможности переварить его, когда у меня будет время. Спасибо. - person Madivad; 18.11.2015
comment
По сути, это разрешение DNS на уровне файлов. Вы назначаете расположение файлов сайта на одном из последних этапов, а затем обрабатываете ряд условий. Простой ответ - это медленный способ сделать это. Если вас взломают или хостинговая компания изменит политику с файлами .htaccess, запрещающими mod_rewrite, то у вас будет орда недовольных клиентов. Трехстрочное решение от @Gerben — это простейший код, который работает так же, как и мой, но требует обновления .htacess для каждого нового домена, в то время как мой — автоматический, обслуживает корневой хостинг и WordPress. - person greg.arnott; 19.11.2015

вместо использования «припаркованного домена» используйте дополнительный домен - и здесь только корневой каталог в public_html/подкаталог, где вы хотите указать свой новый «припаркованный» домен...

person Attila    schedule 24.11.2011
comment
Вместо ответа, отражающего идеальный сценарий, прочитайте вопрос, в котором указано, что дополнительные домены недоступны. Многие среды хостинга настроены таким образом, предлагая 0/∞ для поддоменов и 0/∞ припаркованных доменов, но 0/0 для надстроек, и, вероятно, также рекламируют припаркованные и поддомены, что подразумевает возможность мультихостинга. Опции cPanel для использования надстроек по-прежнему будут отображаться, но не работать, а возможность настроить виртуальные хосты в httpd.conf недоступна из-за отсутствия доступа. То, что осталось, принадлежит Гербену и этой опции mod_rewrite. - person greg.arnott; 07.04.2013