Ir para conteúdo

Arquivado

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

Naimar da Rosa

URL Amigável

Recommended Posts

Muito bom dia...

 

Antes de qqr coisa, preciso admitir que não tenho certeza se estou postando no lugar certo, mas tá valendo.

 

Estou dando continuidade em uma site já bem grande, que não foi iniciado por mim e para ajudar ele é feito em ASP, linguagem sobre a qual eu conheço apenas o básico dos básicos.

 

A pergunta é:

 

Como transformar www.enderecodosite.com.br/site2015/visualizacoes.asp

 

Em:

 

www.enderecodosite.com.br/visualizacoes/

 

Esse é o padrão adotado pelo restante das páginas do site, mas eu não estou conseguindo reproduzir, sendo que preciso manter a identidade do site mais fiel possível ao que já foi iniciado.

 

O que me quebra a cabeça é que eu cheguei a copiar uma página do antigo desenvolvedor que está funcionando muito bem e renomeei, sem ao menos tocar no conteúdo, mas mesmo assim não consigo acessar da forma que foi descrita acima...

Isso me leva a cogitar que existe um arquivo ou tabela externa "controlando isso" mas não consigo encontrar no código nada que justifique minha desconfiança...
Se ajudar, o antigo desenvolvedor usa um arquivo (config.asp) que transporta a URL oficial + site2015 em uma espécie de variável:
<%=URL_SITE %>
Bom, se alguém poder me dar uma dica de aonde estou errando eu agradeço...
Deus os abençoe...

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele deve estar fazendo a url amigável sem componente, verifique junto ao diretório raiz se existe httpd.ini, caso não exista ele está usando sem componente. Tipo assim:

 

sistema de url amigável sem o uso do ISAPI Rewrite

1 - coloque endereço completo em todas âncoras das páginas que levam a exibição dos dados, incluindo o endereço do arquivo .css
2 - crie uma página idêntica à página que recebe os dados, exemplo(produtos.asp) para (produtos2.asp)
3 - coloque o endereço completo de de url em todos os links de todas as páginas, assim como no arquivo .css.
4 - crie pastas com os nomes de todas sessões e/ou categorias existentes separados por (-) ex:(receitas-com-aves) em seu site e dê as devidas permissões de escrita e leitura.
5 - crie uma tabela no bancos de dados chamada "sitemaps" contendo os campos ("id" AUTO_INCREMENT) e ("url" longtext) com as configurações: CHARSET=utf8 COLLATE=utf8_general_ci .
6 - lembre-se de setar as permissões onde os arquivos serão gravados assim como seu seu arquivo sitemap.txt .
7 - crie uma página com o nome "criar-pagina.asp" .

Obs: o problema é que eu acho que não serve para lojas virtuais.


vamos então, abra o arquivo que recebe os dados(produtos.asp) e coloque as instruções abaixo da consulta que mostra os dados:

'Aqui eu informo a sessão do produto substituindo os espaços por traço, eu acho que não preciso mostrar as outras variáveis.

'Aqui eu fiz uma consulta no banco e recuperei a sessão o produto que estava cadastrado.
    sessaoMenu = replace(LCase(strNomeSessao)," ","-")  

    If Request.QueryString("produto") <> "" Then

'Informe todas variáveis do produto na url arquivo (produtos2.asp) que é a cópia criada por você, no meu caso eu estou passando outras variáveis pela url porque preciso delas para compor as metas tags do meu cabeçalho.
    srturl =  ("http://www.seusite.com.br/produtos2.asp?produto="&intProdID&"&nome="&strNomeProduto&"&sessao="&sessaoMenu&"&tag="&strTag&"&descricao="&strDescricao&"&imagem="&strImagem&"")

'Aqui redireciona para a página criar-pagina.asp passando as variáveis informadas acima.
Response.Redirect ("criar-pagina.asp?SURL="&srturl&"")

Else





'Fechar a condição no final da página.
   end if

criar-pagina.asp

<%

Dim strProdID
Dim strNomeProduto
Dim StrSURL
Dim strSessao
Dim strTag
Dim strNota
Dim strImagem
Dim CAcento
Dim SAcento
Dim titulo
Dim pagina
Dim caminho
Dim link
Dim strSite
Dim strCodigo
Dim codigo
Dim xmlhttp
Dim GRAVAR
Dim FSO
Dim htmlspecialchars_decode
Dim strEnderecoPagina
Dim sitemaps
Dim link_sitemap
Dim caminho_sitemap
Dim ArqTxt

'Função para remover acentos.

   Function TirarAcento(Palavra)
   CAcento = "àáâãäèéêëìíîïòóôõöùúûüÀÁÂÃÄÈÉÊËÌÍÎÒÓÔÕÖÙÚÛÜçÇñѺª"
   SAcento = "aaaaaeeeeiiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcCnN"
   Texto = ""
   If Palavra <> "" then
           For X = 1 To Len(Palavra)
               Letra = Mid(Palavra,X,1)
               Pos_Acento = InStr(CAcento,Letra)
               If Pos_Acento > 0 Then Letra = mid(SAcento,Pos_Acento,1)
               Texto = Texto & Letra
           Next
           TirarAcento = Texto
   End If
   End Function  

'Função para decodificar o conteúdo.
    Function htmlspecialchars_decode(someString)
    htmlspecialchars_decode = replace(replace(replace(replace(someString, "&", "&"), ">", ">"), "<", "<"), """, """")
    End Function


' ------------------------------------------------------------------------------

'Recupera as variáveis.
          strNomeProduto = Request.QueryString("nome")
          strSURL = Request.QueryString("SURL")
          strSessao = Request.QueryString("sessao")
          strTag = Request.QueryString("tag")
          strDescricao = Request.QueryString("descricao")
          strImagem = Request.QueryString("imagem")

'Tratando as variáveis com replace para substituir espaços por traço e em letras minúsculas, e removendo acentos.
          strNomeProduto = replace(TirarAcento(LCase(strNomeProduto))," ","-")
          strSessao = replace(TirarAcento(LCase(strSessao))," ","-")

'Informe aqui o endereço do seu site, não remova a barra.
          strSite = "http://www.seusite.com.br/"

'Aqui vamos montar o nome da nova página com a extensão html.
          titulo = strNomeProduto&".html"

'Aqui informamos a pasta onde será gravada a nova página.
          pasta = strSessao&"/"&titulo

'Aqui informamos o link da página a ser acessada.
         link =  strSURL&"&nome="&strNomeProduto&"&descricao="&strDescricao&"&tag="&strTag&"&imagem="&strImagem


' ------------------------------------------------------------------------------

'Aqui acessamos a página informada e pegamos o código fonte dela.
Set xmlhttp = Server.CreateObject("Microsoft.XMLHTTP")
xmlhttp.Open "GET",link, False
xmlhttp.setRequestHeader "ContentType","text/html"
xmlhttp.setRequestHeader "charset","utf-8"       'use a codificação que melhor lhe atender
xmlhttp.setRequestHeader "Encoding","utf-8"      'use a codificação que melhor lhe atender
xmlhttp.Send
strCodigo =  xmlhttp.ResponseText
codigo = Server.HTMLEncode(strCodigo)


' ------------------------------------------------------------------------------

'Aqui criamos o objeto para gravar a página na pasta conforme sua sessão.
   Set FSO = Server.CreateObject("Scripting.FileSystemObject")
   caminho = Server.MapPath(pasta)
   
   Set GRAVAR = FSO.CreateTextFile(caminho,true)

'Aqui gravamos todo código fonte dentro da nova página.
   gravar.write htmlspecialchars_decode(codigo)
   gravar.close

' ------------------------------------------------------------------------------

'Aqui informamos o endereço completo da nova página.
    strEnderecoPagina = strSite&pasta

'Gravamos o endereço da nova página no banco de dados,e verificamos se já existe o mesmo nome gravado, OBS. coloque um include que faz a conexão com seu banco de dados.
   Set sitemaps = abredb.Execute("SELECT * FROM sitemaps WHERE url='"& strEnderecoPagina &"';")

   if sitemaps.eof and sitemaps.bof then
     link_sitemap = strEnderecoPagina

     sitemaps = "INSERT INTO sitemaps (url) VALUES ('"&link_sitemap&"')"
     abredb.execute(sitemaps)

'Com a mesma condição vamos gravar um novo link no arquivo sitemap.txt.
     Set FSO = Server.CreateObject("Scripting.FileSystemObject")
     caminho_sitemap = "c:/domains/seusite.com.br/wwwroot/sitemap.txt"

'O parâmetro forReading é utilizado somente para leitura.
     Const forReading = 1, forWriting = 2, forAppending = 8

'Instancia o objeto FSO.
    Set Fso = CreateObject("Scripting.FileSystemObject")

'Abre o arquivo com o método OpenTextFile.
    Set ArqTxt = Fso.OpenTextFile(caminho_sitemap,8,True)

'Arquivo aberto, escreve no arquivo.
    ArqTxt.WriteLine link_sitemap

'Fecha o arquivo com o método Close.
    ArqTxt.Close

'Destrói o objeto.
    Set ArqTxt = nothing


  else

  strEnderecoPagina = strEnderecoPagina

  end if

  sitemaps.close
  sitemaps.nothing

' ------------------------------------------------------------------------------

'Pronto, fazemos um redirecionamento para a página recém criada.
Response.Redirect strEnderecoPagina

%>

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.