Há uma pergunta semelhante aqui , mas a resposta não funciona, e a resposta oficial do XenForo também não. Aparentemente, eles tiveram um problema com fóruns migrando de uma configuração /forums para o nível de domínio raiz, mas a solução para isso não funciona.
Link antigo https://www.twcenter.net/forums/member.php?10263-Gaius-Baltar
Novo link https://twcenter.net/members/gaius-baltar.10263/
Link antigo https://www.twcenter.net/forums/showthread.php?581961-Name-Change-Requests
Novo link https://twcenter.net/threads/name-change-requests.581961/
Isso funciona em URLs não amigáveis, mas não tenho muitas delas.
return 301 /threads/$arg_t/;
}
location = /member.php {
return 301 /members/$arg_u/;
}
Acho que o que está me confundindo é a troca entre texto e id. No vBulletin, é id e depois o texto
No XenForo é the-text.id
É claro que as variáveis
$arg_u
ou$arg_t
estão vazias no exemplo de solicitação que você forneceu. Essas variáveis contêm o valor do argumento de consulta correspondente — por exemplo:No pedido
a
$arg_t
variável seria igual a2175433
.No pedido
a
$arg_u
variável seria igual a10263-Gaius-Baltar
.Em vez disso, você precisa trabalhar com a
$args
variável, que contém a string de consulta completa. Os recursos integrados de manipulação de strings do Nginx são muito limitados, mas a seguinte abordagem deve funcionar para você:O Nginx não oferece funções integradas de conversão de maiúsculas e minúsculas. No entanto, com base em um teste rápido com seu exemplo de URL, essa configuração deve funcionar, embora resulte em um redirecionamento 301 adicional de:
para:
Observe que a
map
diretiva deve ser declarada nohttp
contexto, no mesmo nível daserver
diretiva, não dentro de um bloco de servidor.