Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

kania

Tratamento de Url

Recommended Posts

Bom dia pessoal,

 

Gente tenho o seguinte código que visa tratar uma url e deixa-la como amigável, na verdade é um forma paleativa que encontrei de que o usuário possa digitar algo como

 

http://www.iaki.com.br/versaobeta2010/hotsite/340/aquarios_gatronomia

 

Em vez de

 

http://www.iaki.com.br/versaobeta2010/?pg=hotsite.asp&IdCli=340#DC

 

Para chegar ao site ( na versão final não vai ter a pasta versoa2010)

 

Porém quero ver com a equipe se tem como ele redirecionar sem modificar o caminho da url na barra de endereço, pensei em fazer um iframe mas acredito que não deve funcionar.

Outro detalhe é que como vou ter um botão para compartilhar em redes como Twitter, ele vai mandar a Url que estiver no momento na barra e não a digitada.

 

código

 

Dim url_usuario, url_site, url_tratada, prepara_url

url_usuario = request.servervariables("QUERY_STRING")
url_site = Request.ServerVariables("SERVER_NAME")
url_tratada = Replace(url_usuario, "404;http://" & url_site & "/", "")
prepara_url = Split(url_tratada, "/")

Select Case prepara_url(2)
         
         Case "hotsite"
                 If Ubound(prepara_url) <> 0 Then
                         If IsNumeric(prepara_url(3)) Then
                                  Response.redirect "../../../?pg=hotsite.asp&IdCli=" & prepara_url(3)&"#DC"
                         Else
                                 Response.Redirect "../../../default.asp"
                         End If
                 Else
                         Response.Redirect "../../../default.asp"
                 End If
         
         
         'Case "lista_categorias"
         'Case Else
End Select

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa Patric, fera o problema é assim, o site esta hospedado na LocaWeb e este esta utilizando redirecionamento de domino, exemplo:

 

Cliente tem um domino:

 

www.site1.com.br (dominio principal)

 

dentro da locaweb ele redireciona vários outros domino

 

 

usuário digita www.site2.com.br é redirecionado para site www.site1.com.br/site2 porem o usuário na url não ve este redirecionamento para o usuário continua aparecendo www.site2.com.br

 

Bom ai quando eu uso o Isapi ele da pau neste redirecionamento, ve o código que tenho do Isapi

 

[ISAPI_Rewrite]
RewriteEngine on
RewriteBase /
RewriteRule ^/([\w/-]*)(\.css|\.js|\.jpg|\.gif\.png)$ /site/$1$2 [L]

RewriteRule ^([^?]+)\.asp$ $1 [NC,R=301,L]

RewriteCond %{REQUEST_FILENAME}.asp -f
RewriteRule (.*) $1.asp

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta verificar junto com o suporte, pois um amigo meu tinha um esquema só que ao contrário seu...

ele tinha o ISAPI e depois precisou redireciona os sites para outros domino

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gente, estou estudando varios manuais e artigos sobre o Isapi, porem nenhum deles até agora foi muito próximo do que estou tentando fazer, vejam

 

Tenho as Urls:

 

www.grupoeagle.com.br (site principal)

www.iaki.com.br (site redirecionado para a pasta iaki)

www.eagelcard.com.br (site redirecionado para a pasta eaglecard)

www.eaglepremium.com.br (site redirecionado para a pasta eaglepremium)

 

Bom estes domínios conforme falei estão sendo redirecionados automaticamente pela Locaweb

 

O Patric Sugeriu para desativar o redirecionamento, mas ai neste caso então tenho que configurar todos os redirecionamentos pelo Isapi, certo?

 

Como ficaria o arquivo httpd.ini para estes redirecionamentos, fiz vários aqui e nenhum funcinou,quando funciona mais ou menos para um da pau em outro dominio

 

Outro detalhe ai é depois redirecionar a url que tenho hoje que é

 

www.iaki.com.br/?pg=hotsite.asp&IdCli=340

 

Para

 

www.iaki.com.br/aquarios_gatronomia

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa Guilherme Teixeira, fera idéia que você sugere, é praticamente a mesma que postei no inicio, ela funciona com response.redirect mas com response.transfer ou response.execute da o seguinte erro

 

Server object error 'ASP 0173 : 80004005'

Invalid Path Character

/iaki/versaobeta2010/redireciona.asp, line 21

An invalid character was specified in the Path parameter for the MapPath method.

Só para avaliar a resposta de todo o código veja:

 

url_usuario: 404;http://www.iaki.com.br/iaki/versaobeta2010/hotsite/340/
url_site: www.iaki.com.br
url_tratada: iaki/versaobeta2010/hotsite/340/
prepara_url: 340
Rediricina para: ?pg=hotsite.asp&IdCli=340

Após enviar a página ele retorna estes dados, não vejo nada de caracter invalido

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que estou vendo o Server.Execute e o Server.Transfer, não trabalha direito com variáveis, se mandar somente hotsite.asp vai sem problemas mas se mandar ?pg=hotsite.aso&IdCli=340 não funciona

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa Guilherme Teixeira, fera idéia que você sugere, é praticamente a mesma que postei no inicio, ela funciona com response.redirect mas com response.transfer ou response.execute da o seguinte erro

 

Server object error 'ASP 0173 : 80004005'

Invalid Path Character

/iaki/versaobeta2010/redireciona.asp, line 21

An invalid character was specified in the Path parameter for the MapPath method.

Só para avaliar a resposta de todo o código veja:

 

url_usuario: 404;http://www.iaki.com.br/iaki/versaobeta2010/hotsite/340/
url_site: www.iaki.com.br
url_tratada: iaki/versaobeta2010/hotsite/340/
prepara_url: 340
Rediricina para: ?pg=hotsite.asp&IdCli=340

Após enviar a página ele retorna estes dados, não vejo nada de caracter invalido

 

 

Meu caro em url_site não se esqueça da barra no fim! pois senão ele não irá substituir na função replace

 

url_site: www.iaki.com.br/

adapte agora o código para pegar no array os dados da forma que você precisar. E no redirecionamento você tem que por o nome da página!

 

Para as variaveis trabalhe com sessions ou cookies

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Guilherme, na verdade aqueles dados que postei já são os dados retornados via Response.Write, o problema está mesmo na hora da execução pelo Server.Transfer, que não aceita variáveis (?), isto também acontece com o Server.Execute

Compartilhar este post


Link para o post
Compartilhar em outros sites

destrua tudo com

 

response.expires = 0
response.expiresabsolute = Now() -1
response.addHeader "pragma","no-cache"
response.addHeader "cache-control","private"
Response.CacheControl = "no-cache"

Session.Contents.RemoveAll()

Session.Abandon

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi, o que adianta eu guardar a ID por exemplo em uma Session?

 

Guardo a ID 340 em uma session

Ai vou dar um server.transfer("pagina.asp")

 

Na pagina.asp eu vou recuperar este ID, até ai tudo bem, porem eu tenho um script na default que faz uma verificação que apgian foi clicada.

 

Se na string tiver algo na variavel "pg" ele executa a "pg" caso contrario executa a pagina inicial

 

então minhas urls são chamada assim ?pg=pagina.asp, neste caso eu tenho que chamar minha pagina hotsite.asp assim, ?pg=hotsite.asp para que ela abra no ligar certo dentro do site, se eu simplesmente executar ele puro vai abrir, porem sem topo, menu, barra lateral, rodape, etc

 

Usando o redirect, da certo, mas muda a url

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz assim então:

 

cria uma Sub numa página e inclui no teu código. Onde ela faz o seguinte:

 

If Session("pg") = "" then

 

response.redirect 'raiz do site ex. http://www.seusite.com.br/'

 

End if

 

entendeu???

 

Pois redirecionando dessa forma você não irá exibir o nome da página.

Compartilhar este post


Link para o post
Compartilhar em outros sites

www.grupoeagle.com.br (site principal)

...

 

www.iaki.com.br (site redirecionado para a pasta iaki)

response.Status = "301 Moved Permanently"

response.AddHeader "Location","www.iaki.com.br/iaki"

 

www.eagelcard.com.br (site redirecionado para a pasta eaglecard)

response.Status = "301 Moved Permanently"

response.AddHeader "Location","www.eagelcard.com.br/eagelcard"

 

www.eaglepremium.com.br (site redirecionado para a pasta eaglepremium)

response.Status = "301 Moved Permanently"

response.AddHeader "Location","www.eaglepremium.com.br/eaglepremium"

 

 

 

 

 

o isapi vai rodar no dominio "iaki", nos demais você pode usar response.Status como redirecionamento

para aplicar à url -> http://www.iaki.com.br/versaobeta2010/hotsite/340/aquarios_gatronomia

 

RewriteRule ^/versaobeta2010/hotsite/([0-9]+)/([a-z_]+)/$ /pasta/pagina.asp?idCliente=$1$nomeCliente=$2

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.