301 Redirect /parent-page/one https://www.example.com/parent-page-two/one
(Aliás, isso deve ser Redirect 301 ....
)
No entanto, você não deveria estar usando uma diretiva mod_alias Redirect
quando já estiver usando o mod_rewrite (ou seja, RewriteRule
) para o seu redirecionamento geral. O mod_rewrite RewriteRule
será sempre executado primeiro, independentemente da ordem aparente das suas diretivas. Se você já estiver usando o mod_rewrite, use o mod_rewrite para redirecioná-lo.
Você deve usar um RewriteRule
mais específico antes de seu "genérico" RewriteRule
existente. Diretivas mais específicas devem ser as primeiras, pois as diretivas são processadas de cima para baixo (dentro do mesmo módulo).
Por exemplo:
# Enable the rewrite engine (mod_rewrite)
RewriteEngine On
# More specific redirects...
RewriteRule ^parent-page/one$ https://www.example.com/parent-page-two/one [R=301,L]
# Generic redirect last
RewriteRule ^(parent-page/). https://www.example.com/$1 [R=301,L]
Você precisará limpar o cache do seu navegador antes do teste, já que qualquer redirecionamento incorreto (permanente) 301 provavelmente será armazenado em cache pelo seu navegador. Por esse motivo, é mais fácil primeiro testar com redirecionamentos 302 (temporários) para evitar problemas de cache e alternar apenas para 301s (se for essa a intenção) depois de confirmar que tudo funciona.
No entanto, se você já não estiver usando o mod_rewrite para mais nada, então você pode fazer isso com as mod_alias "mais simples". Por exemplo:
# More specific redirects...
RedirectMatch 301 ^/parent-page/one$ https://www.example.com/parent-page-two/one
# Generic redirect last
RedirectMatch 301 ^/(parent-page/). https://www.example.com/$1
Mas não combine redirecionamentos de mod_alias e mod_rewrite, pois você pode obter conflitos inesperados.
Observe que a diretiva mod_alias Redirect
é correspondência de prefixo , portanto, isso pode ou não ser adequado em seu cenário. Depende se você tiver outras URLs que iniciam /parent-page/one
que não devem ser redirecionadas.
UPDATE: Se você tiver apenas um domínio para o qual está redirecionando e já tiver canonizado o esquema (HTTP ou HTTPS) e o nome do host ( example.com
ou www.example.com
), você não necessariamente precisa para especificar uma URL absoluta na substituição . Por exemplo, você poderia usar um caminho relativo à raiz e simplificar a (s) diretiva (s) para ler:
# Generic redirect last
RewriteRule ^(parent-page/). /$1 [R=301,L]
etc.