Quando eu entendi 404.asp antes, uma vez fantasiei para escrever todo o código do programa em 404.asp para realizar uma estação que simula a página da Web estática.
Até que eu vi o servidor.Transfer do ASP, a idéia de gerar uma página estática com 404 simulou a página estática em minha mente. .
<!-#inclua arquivo = bin/404_qury->
< %
Selecione Case Bin_Command
Caso Bin
Server.Transfer (bin/web)
Caso uploadfiles
Server.Transfer (bin/send-stream)
Caso mais
Server.Transfer (bin/send-404)
final Selecione
%>
Hehe, para dizer claramente, é baseado no Bin_Command para julgar se é muito funcional alcançar. . Não há reescrita no PHP.
O código -fonte de Bin/404_Query é o seguinte:
< %
URLS = MID (request.QueryString, Instr (request.QueryString: 80) +4)
Se Instr (URLS,/)> 0 então
Bin_Command = esquerda (URLs, Instr (URLS,/)-1)
getFile = Substituir (URLs, Bin_Command &/,)
outro
bin_Command = bin
final se
%>
Este código é principalmente para determinar o que o Bin_Command foi executado.
Como: Demo.com/index5.html, então bin_command = bin, você pode saber
Demo.com/uploadfiles/123456.gif (esse arquivo corresponde à FIRSE/123456.GIF); em seguida, Bin_Command = Filmefiles, você pode saber que você pode dar ao Bin/Send-Stream. Você pode consultar o artigo que escrevi um artigo AP Practical BinaryWrite e Adodb.stream.
Demo.com/111/222, então Bin_Command = 111 ″, não há definição em caso de seleção, ele é mais, e entregue-o ao BIN/Send-404 para processamento.
Dessa forma, todos os visitantes (incluindo: Baidu, Google), este site é uma página estática. Até onde eu sei, 99,9%dos hosts domésticos do IIS não apoiam o ISAPI_REWRITE, e eu o encontrei uma vez porque os recursos são muito sérios e serão cancelados em breve.
A seguir, é o que vi no ASP aprendendo on -line, anexado à parte traseira para referência:
Ligue para o método Server.Transfer, encerre imediatamente a execução da primeira página e comece a executar a segunda página.
Se a primeira página começar a escrever um buffer de resposta, a segunda página será adicionada ao buffer em vez de substituí -lo.
Se o buffer estiver aberto, esse método modificará a cabeça HTTP, a menos que não haja conteúdo que tenha sido enviado.
Quando transmitidos para outros aplicativos, os objetos de aplicativo e sessão inicial da página incluirão as informações do aplicativo.
Exemplo exemplar
A página de exemplo a seguir explica como usar o método Server.Transfer.
1.
<html>
<Body>
<H3> Etapa 1 -form Página </h3>
<borda da tabela = 1>
<tr>
<th> post </th>
<Td>
<Forma de ação = Page2.asp Método = Post>
<Tipo de entrada = Nome do texto = Nome/>
<Tipo de entrada = Submete Valor = Enviar/>
</morm>
</td>
</tr> <te>
</tr>
<th> obtenha </th>
<Td>
<Forma de ação = Page2.asp Método = Get>
<Tipo de entrada = Nome do texto = Nome/>
<Tipo de entrada = Submete Valor = Enviar/>
</morm>
</td>
</tabela>
</body>
</html>
2. Coloque o seguinte código como página2.asp (sem cotação):
< % @Language = VBScript %>
<html>
<Body>
<H3> Etapa 2 -Transfer Page </h3>
< %
Selecione o caso UCase
Postagem de caso
Server.Transfer Page3a.asp
Caso obtenha
Server.Transfer Page3b.asp
Caso mais
Response.Write Um verbo http desconhecido foi usado.
Final Selecione
%>
</body>
</html>
3. Coloque o seguinte código como página3a.asp (sem cotação):
< % @Language = VBScript %>
<H3> Etapa 3a -post Resultados </h3>
<p> Olá < % = request.form (nome) %> </p>
4. Coloque o seguinte código como Page3b.asp (sem cotação):
< % @Language = VBScript %>
<H3> Etapa 3b -Get Results </h3>
<p> Olá < % = request.QueryString (nome) %> </p>
Nota: As duas últimas páginas são páginas HTML incompletas. Isso ocorre porque as duas páginas são adicionadas ao buffer de segunda página.
Navegue pela página1.asp para testar esta instância.