Команда htaccess для предотвращения доступа к главному сайту через подкаталог? - PullRequest
0 голосов
/ 28 апреля 2011

У меня есть настройка хостинга с главным доменом (сопоставленным с корневым веб-каталогом), а затем с несколькими дополнительными доменами (каждый со своей собственной папкой в ​​корневом веб-каталоге). В настоящее время вы можете посетить www.masterdomain.com/addondomainsubdir и перейти на ту же страницу, что и при посещении www.addondomain.com (которая отображается в / public_html / addondomainsubdir). Я хочу предотвратить это, поэтому, если вы зайдете на сайт www.masterdomain.com/addondomainsubdir, он выполнит редирект 301 на www.addondomain.com. Новый сайт addondomain.com представляет собой одностраничный сайт, поэтому он не должен отображать какие-либо дополнительные страницы.

Добавление правил в файл htaccess в корневом веб-каталоге не влияет ни на что, поскольку существует подкаталог, который является странным, так как я думал, что команда htaccess должна работать, даже если есть соответствующий подкаталог (я пробовал следующее, которое работает, когда нет соответствующий подкаталог):

RewriteRule ^addondomainsubdir?$ http://www.addondomain.com [NC,R=301,L]

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

Буду очень признателен, если кто-нибудь объяснит лучший способ исправить это?

Большое спасибо за вашу помощь,

Dave

Ответы [ 3 ]

1 голос
/ 06 января 2012

Я знаю, что это старый пост, но он так и не получил ответа. Так что для всех вас, ищущих это через поиск, это должно делать то, о чем просит ОП.

Добавьте эту строку в ваш .htaccess файл:

redirect permanent /addondomainsubdir/ http://www.addondomain.com
0 голосов
/ 28 апреля 2011

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

RewriteEngine on

RewriteCond %{HTTP_HOST} masterdomain\.com$ [NC]
RewriteRule ^addondomainsubdir(.*)$ http://www.addondomain.com/$1 [R=301,L]
0 голосов
/ 28 апреля 2011

Попробуйте эти правила в вашем .htaccess:

Options +FollowSymlinks -MultiViews
RewriteEngine on

# for http
RewriteCond %{HTTP_HOST} ^(www\.)?masterdomain\.com$ [NC]
RewriteCond %{SERVER_PORT} =80
RewriteRule ^([^/]+)/?$ http://www.$1.com/ [R=301,L]

# for https
RewriteCond %{HTTP_HOST} ^(www\.)?masterdomain\.com$ [NC]
RewriteCond %{SERVER_PORT} =443
RewriteRule ^([^/]+)/?$ https://www.$1.com/ [R=301,L]
...