/ / .htaccess redireciona do subdomínio para o principal no WordPress - wordpress, .htaccess, http-status-code-404, qtranslate-x

.htaccess redirecionar do subdomínio para o principal no WordPress - wordpress, htaccess, http-status-code-404, qtranslate-x

Eu estou tentando adicionar idiomas ao meu site wordpress. Para isso eu estou usando o plugin "qTranslate X" no modo "por domínio".

Deve funcionar da seguinte forma:

http://domain.com - main language
http://en.domain.com - english
etc...

O que eu preciso é redirecionar todas as solicitações do subdomínio para o domínio principal. O resto será feito pelo plugin.

Example:
http://en.domain.com/category/article
should be redirected to
http://domain.com/category/article

Eu modifiquei o principal arquivo .htaccess WP

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^en.domain.com [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]

RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Mas, infelizmente, funciona apenas para a página inicial (por exemplo, http://en.domain.com). Quando eu digito http://en.domain.com/category/article Eu vejo a página 404 Not Found.

Obrigado por qualquer ajuda!

Respostas:

1 para resposta № 1

Você precisa executar uma reescrita de URL, não um redirecionamento que você está especificando com R=301 para gerar um redirecionamento HTTP com o código de status 301.

Provavelmente você tem uma entrada de DNS curinga de tal forma que *.domain.com vai para o seu servidor web, e o WordPress é instalado em domain.com. O código a seguir deve reescrever sua URL para acessar a página e o idioma corretos. Note que o RewriteCond foi modificado para especificar vários idiomas com (en|es|fr) e que o RewriteRule especifica apenas o L opção indicando que é o euUma regra a ser processada.

RewriteBase /
RewriteCond %{HTTP_HOST} ^(en|es|fr).domain.com [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [L]

0 para resposta № 2

Eu passei muitas horas pesquisando e, finalmente,encontrou uma resposta. Gostaria de lembrar que meu problema era ajustar o plug-in "qTranslate X" para servir meu site multilíngüe. Então aqui está o que eu fiz para conseguir isso.

Em Configurações -> Permalinks eu tenho "estrutura personalizada" marcada, http://domain.com/%category%/%postname%

Em qTranslate -> "Configurações avançadas" -> Modo de modificação de URL: Use o modo por domínio. Eu defino "domain.com" para o idioma principal, "en.domain.com" - inglês etc.

Você não precisa alterar o código padrão do .htaccess do WordPress para a estrutura customizada do permalinks, ele funciona perfeitamente com o plugin "qTranslate X", portanto, certifique-se de que o arquivo .htaccess seja parecido com este.

# 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

A única coisa que precisa ser feita é fazerCertifique-se de que as solicitações para o subdomínio sejam processadas como solicitações para o domínio principal. Ou seja suas pastas de subdomínio devem apontar para a pasta em que o WordPress está instalado. Em diferentes hospedeiros, pode ser conseguido de formas diferentes. Quanto a mim, nas configurações de domínio que eu encontrei uma opção processa todas as solicitações de subdomínios, que não existem. Então, eu nem precisei criar nenhum subdomínio! Apenas uma única chechbox. Se você não tiver certeza, como fazer isso, entre em contato com o serviço de suporte de hospedagem e peça ajuda.