Я пытаюсь перенаправить:
domain.com
и www.domain.com
к https://www.newdomain.com
с редиректом 301, кроме subdomain.domain.com
.
Я пробовал разные методы, но они не работают. Я предполагаю, потому что физический путь к моим поддоменам находится под httpdocs/subdomain/
хоста (например, domain.com/subdomain/
)
Кроме того, хотелось бы www.domain.com/subdomain/
иметь свой .htaccess
с полностью работающим mod_rewrite. Является ли это возможным? Как?
Кроме того, хотелось бы
www.domain.com/subdomain/
иметь свой.htaccess
с полностью работающим mod_rewrite. Является ли это возможным? Как?
Да, это возможно. Вы просто делаете то, что предлагаете, и включаете .htaccess
файл в /subdomain
подкаталог. .htaccess
файлы работают по пути файловой системы.
По умолчанию директивы mod_rewrite полностью переопределяют любые директивы mod_rewrite в родительском файле конфигурации, они не наследуются. Итак, если вы включите директивы mod_rewrite в поддомен .htaccess
файл, это фактически упрощает вашу предыдущую переадресацию - теперь нет необходимости включать какие-либо специальные условия (RewriteCond
директивы). Его можно упростить до одной директивы. Например:
RewriteRule (.*) https://www.newdomain.com/$1 [R=301,L]
(Это предполагает, что newdomain.com
размещается на внешнем сервере.)
При доступе к субдомену директивы mod_rewrite в /subdomain
подкаталог обрабатываются и перенаправление в корень .htaccess
файл полностью игнорируется.
Вы можете использовать mod_rewrite:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.domain.com$
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,L]