Como posso acrescentar HTTP_REFERER a seqüência de caracteres de consulta usando o .htaccess?
-
16-09-2019 - |
Pergunta
No meu .htaccess eu tenho um conjunto de regras de como se segue:
RewriteRule ^dir/page1$ /bleh/docs/?id=12 [L,QSA]
RewriteRule ^dir/page2$ /bleh/docs/?id=13 [L,QSA]
RewriteRule ^dir/page3$ /bleh/docs/?id=14 [L,QSA]
Às vezes, um desses regras podem ser acessados através de um redirecionamento a partir de outro site (referer).Eu gostaria de ser capaz de acrescentar a referência para a seqüência de caracteres de consulta como esta:
RewriteRule ^dir/page2$ /bleh/docs/?id=13&ref=%{HTTP_REFERER} [L,QSA]
No entanto, isso não parece funcionar.
O que estou fazendo de errado?
Solução
Se você está soletrando http_referer (isso não está claro devido a edições), você está fazendo isso corretamente. Se não estiver funcionando nesse ponto, é porque o referente não está sendo fornecido. (Que existem inúmeras razões para; fornecê -lo está a critério do navegador.)
Outras dicas
A variável de referência que utiliza o common erro de ortografia: HTTP_REFERER
.Ver este cheat-folha de para alguns mais nomes de variáveis.
Até onde eu sei, uma reescrita de URL não remova o original Referer
cabeçalho embora, então você ainda deve ser capaz de buscá-lo a partir de seu código sem passá-lo como parâmetro de cadeia de consulta (desde que ela dá a você acesso o HTTP variáveis).
Um método testado que funciona para mim e transfere o Refferador através de um redirecionamento 301.https://webmasters.stackexchange.com/questions/4665/