Jump to content
portallweb

URL amigável ASP Clássico com Isapi Rewrite

Recommended Posts

Bom dia, pessoal.

 

A questão é que eu consigo acessar um endereço "dominio.com/modulo/id/titulo" e ele reescrever para "dominio.com/default.asp?link=artigo&id=123&titulo=teste", mas minha dúvida é se consigo fazer o processo reverso, ou seja, acessar "dominio.com/default.asp?link=artigo&id=123&titulo=teste" e ele alterar para "dominio.com/modulo/id/titulo".

 

Códigos:

 

WEB.CONFIG

 

<?xml version="1.0" encoding="UTF-8"?>
<system.webServer>
    <rewrite>
        <rules>
            <rule name="artigo" stopProcessing="true">
                <match url="^artigo/?([a-zA-Z0-9_-]+)?/?([a-zA-Z0-9_-]+)?/?([a-zA-Z0-9_-]+)?$" />
                <conditions> 
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
                </conditions>
                <action type="Rewrite" url="default.asp?link={R:0}&id={R:1}&teste={R:2}" />
            </rule>
        </rules>
    </rewrite>
</system.webServer>

 

ASP

 

<!DOCTYPE html>
<html lang="pt-br">
   <head>
       <meta charset="utf-8"/>
       <title>Teste Isapi Rewrite</title>
   </head>
   <body>
       <p>
			Teste!<br>
			link: <%=request("link")%><br>
			id: <%=request("id")%><br>
			teste: <%=request("teste")%><br>
		</p>
   </body>
</html>

 

Desde já agradeço!

Share this post


Link to post
Share on other sites

Resolvido com as seguinte regras:

<rule name="reverse" enabled="true" stopProcessing="true">
    <match url="(.*)" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
        <add input="{REQUEST_URI}" pattern="default.asp" />
        <add input="{QUERY_STRING}" pattern="link=(.*)\&amp;id=(.*)\&amp;titulo=(.*)" />
    </conditions>
    <action type="Redirect" url="http://{HTTP_HOST}/{C:1}/{C:2}/{C:3}" appendQueryString="false" />
</rule>
<rule name="RewriteUserFriendlyURL1" enabled="true" stopProcessing="true">
    <match url="^([^/]+)/([^/]+)/([^/]+)/?$" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
    </conditions>
    <action type="Rewrite" url="default.asp?link={R:1}&amp;id={R:2}&amp;titulo={R:3}" appendQueryString="false" />
</rule>

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By camisavp
      Boa tarde.
       
      Estou com umas boas dificuldades aqui. Preciso que, em um formulário grande, eu ao digitar o numero do prontuário, caso já exista ele cadastrado, me retorne alguns campos preenchidos automaticamente.
       
      Estou tentando montar um formulário da seguinte maneira:
       
      form:
       
      input 1: - vai buscar a informação no banco de dados. se possível, com um autopreenchimento durante a digitação
       
      input 2: - caso já exista um prontuário, popular o input com os dados retirados do banco de dados
       
      input 3: - será preenchido manualmente
       
      input 4: - caso já exista um prontuário, popular o input com os dados retirados do banco de dados
       
      input 5: - caso já exista um prontuário, popular o input com os dados retirados do banco de dados
       
      input 6: - será preenchido manualmente
       
      input 7: - será preenchido manualmente
       
      ... mais uma série de inputs preenchidos manualmente
       
      /form.
       
      Não sou um estudioso e nem estou na minha área, pois sou engenheiro, haja visto que a aplicação é residencial e ainda em asp clássico com banco de dados access. kkkkkkkkkk
       
      Faço isso como hobby.
       
      Passei duas semanas já tentando achar uma solução, porém sem sucesso.
       
      Agradeço a ajuda de quem puder colaborar.
       
      Grato
       
      Marcelo Camisa
       
    • By s3c0
      Fala galera,
       
      boa tarde. Estou precisar criar uma página para recuperar algumas informações do PC.
       
      Achei um script, porém a informação não é visualizado na página.
       
      Segue script
      <% Set objShell = server.CreateObject("WScript.Shell") Set objExec = objShell.Exec("cmd /c powershell wmic cpu get loadpercentage") Set objStdOut = objExec.StdOut response.write "CPU:<BR>" While Not objStdOut.AtEndOfStream Response.write objStdOut.ReadLine &"<BR>" Wend objExec.StdIn.Close() %> Alguém tem alguma ideia do que está errado?
       
      Agradeço a atenção de todos!
    • By fsanchez
      Olá Pessoal!
       
       
      Para auxilio de outros desenvolvedores que estão iniciando com WEBHOOK, segue algumas dicas que obtive desenvolvendo um webhook.
       
      Webhook de forma resumida:
       
      - Webhooks permitem criar integrações que comunicam eventos ocorridos nos documentos da plataforma da Clicksign. Quando um evento ocorre, a Clicksign notifica a sua aplicação imediatamente, através de uma requisição HTTP POST para a URL previamente cadastrada.
       
      Eventos dentro do webhook
      - Quando ocorrerem eventos nos documentos, uma requisição HTTP POST será disparada para a URL previamente cadastrada nas configurações da conta. 
       
      Aqui que vem a dica:
      O servidor cliente faz uma requisição, e aguarda uma resposta da sua aplicação, informando se você recebeu a requisição:
      - Responda a requisição do Webhook com uma resposta HTTP 200 OK. Qualquer resposta fora do intervalo 2XX informará que você não recebeu seu webhook.
       
      exemplo em  ASP :
       
      Response.ContentType = "application/json"
      Response.Status="HTTP/1.1 200 OK"
       
      Depois é só alegria, tratar dados recebidos.
      exemplo:
       
      ATRAVES DO SERVERVARIABLES CONSIGO OBERTER O RESULTADO DA REQUISIÇÃO

      cabecalho_completo = Request.ServerVariables("ALL_HTTP") 
      content_type = Request.ServerVariables("CONTENT_TYPE")
      ...etc...
       
       
      Pra voce conseguir pegar o json, isso em ASP,  será necessario converte - lo em Tipo Byte, depois em String para você se quiser obter alguma tag do JSON para algum tratamento.
      exemplo:
       
      Dim lngBytesCount
      lngBytesCount = Request.TotalBytes
      jsonstring = BytesToStr(Request.BinaryRead(lngBytesCount))

      Function BytesToStr(bytes)
          Dim Stream
          Set Stream = Server.CreateObject("Adodb.Stream")
          Stream.Type = 1 'tipo de dados binarios
              Stream.Open
              Stream.Write bytes
              Stream.Position = 0
          Stream.Type = 2 'tipo de dados texto
              Stream.Charset = "iso-8859-1"
              BytesToStr = Stream.ReadText
              Stream.Close
          Set Stream = Nothing
      End Function

      'Instancio o obejto JSON'
      Set oJSON = New aspJSON
      'Carrego a String JSON
      oJSON.loadJSON(jsonstring)
      'Obter valor simples
      nome_tag = oJSON.data("tagJSON").item("tagJSON")
       
       
       
       
       
    • By fsanchez
      Como Posso recuperar o retorno do JSON que foi enviado via POST de uma requisição Webhook em asp classic.
       
      Precisaria mais ou menos assim:
       
      POST / HTTP/1.1 Host: testecrm.requestcatcher.com Accept: */* Accept-Encoding: gzip, deflate Content-Hmac: sha256=fc9e789996bdd63c0f03dacccb1ef992310d8516d9e8673bce5b1d0825100cda Content-Length: 5363 Content-Type: application/json Event: add_signer User-Agent: rest-client/2.0.2 (linux-musl x86_64) ruby/2.6.3p62 X-Newrelic-Id: VQUDV1JXGwICU1RWBggDUg== X-Newrelic-Transaction: PxQHAAQGDldRU1lWVgUGAFIIFB8EBw8RVU4aUllaUQRXBA5ZBQAHUwIADkNKQQoKA1IAVwAEFTs=  
       
    • By Darwin Osi
      Estou com o Visual Studio 2013 instalado sob o Windows 10. Quando tento abrir o primeiro projeto do livro supracitado, chamado Music Trivia, o Visual Studio 2013 montra na janela Solution Express a mensagem:
       
      > Solution 'Music Trivia' (0 projects)
          > Music Trivia (Windows 8.1 required)
              > This computer must be upgraded to Windows 8.1 to load this project.
       
      Como resolver isso e carregar esse e os outros projetos do livro? Desde já agradeço qualquer ajuda.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.