Jump to content
  • 0

htaccess редирект в директорию для нового домена


sidempty
 Share

Question

Здравствуйте,

прочитал информацию по прописыванию редиректа сайта в htaccess, но что-то делаю не так. Ситуация такая:

У менять есть домен site1.com (хостинг timeweb). Он находится в папке /site1.com/public_html/ . Теперь я хочу создать еще один один домен site2.com и размеситить его директориу в папку /site1.com/public_html/site2.com/ (так как есть ограничения на хостинге по созданию новых директория я доменов - максимум 2 директория для 2-х сайтов). Что нужно прописать в htaccess фаиле.

Заранее спасибо за помощь.

Link to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 0

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

P.S. уважайте пожалуйста потенциальных ваших помощников, да и вообще форумчан в целом и на критику просьба не обижаться.

Link to comment
Share on other sites

  • 0

Плохая практика делать директорию одного домена в поддиректории другого.

А вообще это возможно. Если у вас настроены два виртулаьных хостиа таким образом как вы описали, нужно просто запретить заходить в директорию /site1.com/public_html/site2.com/ если текущее доменное имя в адресе site1.com.

Примерно как то так:


RewriteEngine On
RewriteCond %{HTTP_HOST} ^site1\.com$ [NC]
RewriteRule ^site2\.com.*$ /404.php [R=301,L]

Link to comment
Share on other sites

  • 0

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

P.S. уважайте пожалуйста потенциальных ваших помощников, да и вообще форумчан в целом и на критику просьба не обижаться.

Все хорошо админ. Просто писал ночью, проверка орфографии выключено. Не прочитал текст после того как написал. Дело машинальное.

Плохая практика делать директорию одного домена в поддиректории другого.

А вообще это возможно. Если у вас настроены два виртулаьных хостиа таким образом как вы описали, нужно просто запретить заходить в директорию /site1.com/public_html/site2.com/ если текущее доменное имя в адресе site1.com.

Примерно как то так:


RewriteEngine On
RewriteCond %{HTTP_HOST} ^site1\.com$ [NC]
RewriteRule ^site2\.com.*$ /404.php [R=301,L]

После этого кода оба сайта открываются снова одинаково. Индексовая страница для site2.com открывается снова с директории /site1.com/public_html/ (это директория сайта site1.com). А мне нужно чтоб индексовая страница (директория = весь сайт для site2.com) открывался с директории /site1.com/public_html/site2.com/. Думаю сейчас более понятно будет.

П.С Почему плохая практика делать директорию одного домена в поддиректории другого?

просто вариантов нет, хостинг поставил ограничения всего на 2 сайта.

Link to comment
Share on other sites

  • 0

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

P.S. уважайте пожалуйста потенциальных ваших помощников, да и вообще форумчан в целом и на критику просьба не обижаться.

Все хорошо админ. Просто писал ночью, проверка орфографии выключено. Не прочитал текст после того как написал. Дело машинальное.

Плохая практика делать директорию одного домена в поддиректории другого.

А вообще это возможно. Если у вас настроены два виртулаьных хостиа таким образом как вы описали, нужно просто запретить заходить в директорию /site1.com/public_html/site2.com/ если текущее доменное имя в адресе site1.com.

Примерно как то так:


RewriteEngine On
RewriteCond %{HTTP_HOST} ^site1\.com$ [NC]
RewriteRule ^site2\.com.*$ /404.php [R=301,L]

После этого кода оба сайта открываются снова одинаково. Индексовая страница для site2.com открывается снова с директории /site1.com/public_html/ (это директория сайта site1.com). А мне нужно чтоб индексовая страница (директория = весь сайт для site2.com) открывался с директории /site1.com/public_html/site2.com/. Думаю сейчас более понятно будет.

П.С Почему плохая практика делать директорию одного домена в поддиректории другого?

просто вариантов нет, хостинг поставил ограничения всего на 2 сайта.

Вы видимо не внимательно прочли то что я написал.

В настройках apache есть такая директива DocumentRoot и вот для каждого виртуального хоста она разная. А раз у вас оба домена указывают на одну папку то значит DocumentRoot прописан одинаковый.

Попробуйте вот так:


RewriteEngine On
RewriteCond %{HTTP_HOST} ^site1\.com$ [NC]
RewriteRule ^site2\.com.*$ /404.php [R=301,L]

RewriteCond %{HTTP_HOST} ^site2\.com$ [NC]
RewriteRule ^(.*)$ /site2.com/$1 [L]

Link to comment
Share on other sites

  • 0

полагаю что нужно что-то типа того:


<VirtualHost 127.0.0.1:80 >
ServerName site2.com
AddDefaultCharset UTF-8
DocumentRoot /site1.com/public_html/site2.com/
ServerAlias www.site2.com
SuexecUserGroup GroupUser User
AddHandler fcgid-script .php .php3 .php4 .php5 .phtml
</VirtualHost>

хотя могу ошибаться...

Link to comment
Share on other sites

  • 0

полагаю что нужно что-то типа того:


<VirtualHost 127.0.0.1:80 >
ServerName site2.com
AddDefaultCharset UTF-8
DocumentRoot /site1.com/public_html/site2.com/
ServerAlias www.site2.com
SuexecUserGroup GroupUser User
AddHandler fcgid-script .php .php3 .php4 .php5 .phtml
</VirtualHost>

хотя могу ошибаться...

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

Link to comment
Share on other sites

  • 0

Друзья!

Последний вариант:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^site1\.com$ [NC]

RewriteRule ^site2\.com.*$ /404.php [R=301,L]

RewriteCond %{HTTP_HOST} ^site2\.com$ [NC]

RewriteRule ^(.*)$ /site2.com/$1 [L]

Вроде работает. Но теперь когда захожу на site2.com, выдает ошибку 505:

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Я создал в директории /site1.com/public_html/site2.com/ index.html, но он выдает 505 ошибку. Набираю адрес: www.site2.com/index.html , все равно дает 505 ошибку.

Link to comment
Share on other sites

  • 0

Эм забыл про цикличность, попробуйте вот так:


RewriteEngine On
# редирект с доменов с префиксов www на домен без www
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
# не даем зайти в папку /site2.com/ если домен site1.com
RewriteCond %{HTTP_HOST} ^site1\.com$ [NC]
RewriteRule ^site2\.com.*$ /404.php [R=301,L]
# перекидываем запросы в папку /site2.com/ если домен site2.com
RewriteCond %{HTTP_HOST} ^site2\.com$ [NC]
RewriteCond %{REQUEST_URI} !^\/site2\.com.*$ [NC]
RewriteRule ^(.*)$ /site2.com/$1 [L]

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

Edited by wwt
Link to comment
Share on other sites

  • 0

Эм забыл про цикличность, попробуйте вот так:


RewriteEngine On
# редирект с доменов с префиксов www на домен без www
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
# не даем зайти в папку /site2.com/ если домен site1.com
RewriteCond %{HTTP_HOST} ^site1\.com$ [NC]
RewriteRule ^site2\.com.*$ /404.php [R=301,L]
# перекидываем запросы в папку /site2.com/ если домен site2.com
RewriteCond %{HTTP_HOST} ^site2\.com$ [NC]
RewriteCond %{REQUEST_URI} !^\/site2\.com.*$ [NC]
RewriteRule ^(.*)$ /site2.com/$1 [L]

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

Вы просто гений. Работает. Если будут вопросы я еще раз обращусь сюда если Вы не против. Спасибо!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy