Перенаправление определенных поддоменов .HTACCESS для WordPress multisite с использованием подстановочного SSL и без внутренних перенаправлений

#wordpress #.htaccess #redirect #subdomain #multisite

#WordPress #.htaccess #перенаправление #Поддомен #multisite

Вопрос:

Я пытаюсь сопоставить определенные поддомены на моем WordPress Multisite.

Я успешно сопоставил свои многосайтовые поддомены с их новыми доменами.

Пример:

Store5.domain.com теперь успешно изменен на prodomain.com и все работает нормально, вплоть до одной точки.

Мне нужно сделать так, чтобы все, кто знал о store5.domain.com будет перенаправлен на prodomain.com

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

Что я могу сделать, чтобы безопасно настроить свой файл .htaccess, чтобы я мог 301 перенаправлять людей из определенного домена (доменов)?

Пример: сейчас не используется: storeX.domain.com 301 постоянное перенаправление на живой prodomain.com

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

Из-за подстановочного SSL и из-за наличия подстановочного поддомена я не могу создать основное перенаправление для Store5.domain.com из панели управления, как обычно, и потому, что они являются поддоменами, а не подкаталогами (sub.domain.com / нет domain.com/sub ) Я не могу использовать простое исправление, такое как плагин перенаправления.

Единственным вариантом, который, как я понимаю, будет работать, будет перенаправление с использованием .htaccess .

  • Дополнительная цель: в идеале, я хотел бы включить способ сделать так, чтобы, если кто-то посещает store5.domain.com/product/name будут перенаправлены как перенаправление с подстановочным знаком, где не имеет значения, что они ставят после косой черты, первая часть изменится с store5.domain.com чтобы prodomain.com и конец его останется неизменным.*

Мой текущий htaccess выглядит так (у меня нулевой навык написания htaccess):

 RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*.php)$ $1 [L]
RewriteRule . index.php [L]
AddHandler application/x-httpd-php74 .php .php5 .php4 .php3
 

Ответ №1:

Как я переписал ядро на .htaccess.

 RewriteEngine On
RewriteCond %{HTTP_HOST} ^store5.domain.com [NC]
RewriteRule $ https://newdomain.com/$1 [L,R]
 

Вот как теперь выглядит мой пример:

 RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

RewriteEngine On
RewriteCond %{HTTP_HOST} ^store5.domain.com [NC]
RewriteRule $ https://domain1.com/$1 [L,R]

RewriteEngine On
RewriteCond %{HTTP_HOST} ^store2.domain.com [NC]
RewriteRule $ https://domain2.com/$1 [L,R]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*.php)$ $1 [L]
RewriteRule . index.php [L]
AddHandler application/x-httpd-php74 .php .php5 .php4 .php3