Как перенаправить / перезаписать каталог в другой на поддомене?

#wordpress #apache #.htaccess #redirect #http-status-code-301

#wordpress #apache #.htaccess #перенаправление #http-status-code-301

Вопрос:

Я пытаюсь переписать URL-адреса домена.

www.example.com/dir1/ Для www.example.com/dir2/

и

sub1.example.com/dir1/ Для sub1.example.com/dir2/

Проблема в том, что sub1 — это мультисайт WordPress, использующий один и тот же htaccess с корневым доменом, и перенаправление для / dir1 / перенаправляет оба домена на https://www.example.com/dir2

Просто не удалось найти ответ на Stack Overflow, и поскольку это сайт с интенсивным трафиком, я не могу позволить себе взорвать его.

Ответ №1:

Убедитесь, что AllowOverwrite ALL это включено для обоих каталогов в вашей конфигурации apache.

 <Directory /var/www/example.com>
        AllowOverride All
</Directory>
<Directory /var/www/example.com/sub1>
        AllowOverride All
</Directory>
  

После добавления создайте .htaccess файл в корне example.com

Это перенаправит example.com/dir1/ на example.com/dir2/

     RewriteEngine on
    Redirect 301 /dir1 http://example.com/dir2
  

Затем создайте другой .htaccess файл внутри папки подкаталога, где расположен wordpress.
Это перенаправит sub1.example.com/dir1/ на sub1.example.com/dir2/

 RewriteEngine on
RewriteRule ^/?dir1/(.*)$ /dir2/$1 [R,L]
  

После этого,

 sudo service apache2 restart
sudo a2enmod rewrite