Назад | Перейти на главную страницу

301 Перенаправить все на другой домен, кроме поддомена

Я пытаюсь перенаправить:

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]