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

Я пытаюсь перенаправить domain.com на domain.se/en , но это не сработает. Как будто еще одна перезапись или перенаправление происходит с domain.se/sv , прежде чем я получу шанс . Я безуспешно пробовал несколько конфигураций VirtualHosts и вариантов .htaccess . domain.com использует запись A, которая указывает на тот же IP-адрес, что и domain.se (основной домен). Я подозреваю, что плагин WordPress Polylang может переписывать 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 config выглядит так: (Обратите внимание, что и .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 :

Chrome Dev Tools - Network Tab - Showing redirect

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

3
задан 23 December 2016 в 21:51
1 ответ

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

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

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

.
0
ответ дан 3 December 2019 в 08:00

Теги

Похожие вопросы