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

VirtualHost / .htaccess - перенаправление с .com на .se / en не работает / игнорируется (Polylang?)

Я пытаюсь перенаправить domain.com к domain.se/en, но это просто не сработает. Это похоже на другую перезапись или перенаправление domain.se/sv прежде чем я получу шанс. Я пробовал несколько конфигураций VirtualHosts и .htaccess варианты безуспешно. domain.com использует запись A, указывающую на тот же IP-адрес, что и domain.se (основной домен) делает. Я подозреваю плагин WordPress Полиланг может переписывать URL-адрес или вызывать перенаправление до того, как у меня появится такая возможность.

Мой .htacces в настоящее время выглядит так:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} .*domain.com.*$
RewriteRule ^(.*)$ http://domain.se/en [L]
</IfModule>
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

и моя конфигурация VirtualHosts выглядит так: (Обратите внимание, что оба .no и .fi также неправильно перенаправляет на .se/sv)

NameVirtualHost *:80
<VirtualHost *:80>
        ServerName domain.com
        ServerAlias www.domain.com
        RedirectPermanent / http://domain.se/en
</VirtualHost>

<VirtualHost *:80>
        ServerName domain.fi
        ServerAlias www.domain.fi
        RedirectPermanent / http://domain.se/fi
</VirtualHost>

<VirtualHost *:80>
        ServerAdmin admin@domain.com
        ServerName domain.se
        ServerAlias www.domain.se
        ServerAlias domain.no
        DocumentRoot /var/www/html
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        <Directory /var/www/html>
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>

Вот как это выглядит в разделе сети инструментов Chrome Dev, когда я пытаюсь перейти на domain.com:

Я очистил кеш DNS локально и в Chrome перед посещением домена.

У меня такая же проблема. WordPress кажется виновником этого заголовка. Я не знаю структуру вашего проекта, поэтому я бы предложил два подхода к устранению проблемы:

Header always edit Location в вашей конфигурации VirtualHost требуется mod_headers. Это всегда будет редактировать заголовок после любые модификации, сделанные приложением, например, Zend, WordPress, Spring и т. д.

wp_redirect, из ответ, должен помочь в устранении неполадок, не затрагивая конфигурацию сервера. Это наверное не элегантное решение вашего вопроса, но это функция, которую вы можете использовать для отладки приложения.