Alterar a estrutura da URL como esta não é algo que você deve fazer em .htaccess
sozinho. Em primeiro lugar, você ainda precisa alterar a estrutura da URL em seu aplicativo. Todos os seus links internos ( href
attributes) precisam ser alterados para a nova estrutura de URL. ie. Onde você tinha " /path/to/page
" no HTML, isso agora precisa ser alterado para " /pl/path/to/page
".
Então,
- Altere a estrutura do URL em seu aplicativo.
Como você já tem um front-controller (ou seja, tudo passa por index.php
, que encaminha a solicitação), não há nada que você realmente precise alterar em .htaccess
. No entanto, o seu front-controller ( index.php
, etc.) precisa ser modificado para lidar com o novo formato de URL.
- Atualize seu front-controller.
Quando o aplicativo estiver funcionando bem com a nova estrutura de URL, você poderá implementar um redirecionamento externo em .htaccess
para redirecionar /path/to/page
para /pl/path/to/page
. Isso é para o benefício dos mecanismos de pesquisa e de quaisquer links / marcadores de entrada que estejam vinculados aos URLs antigos.
- Redirecionar todas as solicitações para o novo formato de URL.
Por exemplo, antes de suas reescritas internas existentes (front controller) e depois de seu redirecionamento canônico www para não-www, você poderia fazer algo como:
RewriteCond %{REQUEST_URI} /(.*)
RewriteRule !^pl/ /pl/%1 [R=301,L]
Se o URL solicitado não começar com /pl/
, prefixue o URL e redirecione-o.
saving the root path for a future site version in English.
Isso seria um possível problema, já que você precisa redirecionar todas as solicitações de raiz para /pl/...
nesse ínterim e alguns / muitos links de entrada existentes podem não ser atualizados. Você precisará desativar o redirecionamento quando implementar a versão em inglês na raiz ou redirecionar de maneira inteligente apenas as URLs necessárias. Ou implemente a versão em inglês com um prefixo /en/
?