php 伪静态之IIS篇

好的。首先,什么是 PHP 伪静态?PHP 的伪静态是指在不改动 URL 实际参数的情况下,实现网站 URL 规则的重写。在 IIS 上要实现 PHP 伪静态,需要经过以下步骤:

1.开启 URL 重写模块

在 IIS 管理器中,找到服务器节点,点击“管理的功能”下面的“添加角色和功能”。选择 Web 服务器(IIS)角色,选择“常规功能”,查找并勾选“URL 重写”,进入下一步完成安装。安装完成后,在 IIS 中找到“URL 重写”选项,确保模块已启用。

2.创建 web.config 文件

在网站根目录下创建一个名为“web.config”的文件,并加入以下代码:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Rewrite to PHP file" stopProcessing="true">
          <match url="^(.*)$" />
          <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
          </conditions>
          <action type="Rewrite" url="/index.php/{R:1}" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

这份代码开启了 URL 重写的规则。可以看到,这个规则会将 URL 中的所有内容(使用正则表达式 ^(.*)$ 匹配)传递给 index.php 文件。当然,如果想把所有请求都重定向到一个特定的 PHP 文件,只需要把上述代码最后一行的“url=/index.php/{R:1}”改为“url=/your_php_file.php/{R:1}”。

3.修改 PHP 代码

这一步是可选的,如果你的 PHP 代码本就可以支持不同的 URL 规则,那么就可以省略这一步。不过,大多数情况下,我们还是需要修改一下 PHP 代码。

在 PHP 中使用 $_SERVER['PATH_INFO'] 获取 URL 参数。由于前面的 web.config 规则中,我们已经将所有请求都传递给了 index.php 文件,因此在这个文件中就可以通过 $_SERVER['PATH_INFO'] 来获得 URL 的所有参数。以下是一个简单示例:

<?php
// 根据 $_SERVER['PATH_INFO'] 获取参数
$url_param = explode('/', $_SERVER['PATH_INFO']);

// 进行相应操作
switch($url_param[1]) {
  case 'article':
    include('article.php?id=' . $url_param[2]);
    break;
  case 'page':
    include('page.php?id=' . $url_param[2]);
    break;
  default:
    include('home.php');
    break;
}
?>

这段代码通过 $_SERVER['PATH_INFO'] 获取 URL 参数,并进行了简单的处理,根据参数不同来调用不同的 PHP 文件。这里只提供一个示例,实际使用中需要根据自己的代码进行修改。

4.示例说明

以下是两个示例,帮助理解 PHP 伪静态的实现。

示例一

假设我们有一个文章列表页面,URL 的格式为“/articles.php?type=tech&page=1”。如果使用 PHP 伪静态,可以将其转换为“/article/tech/1/”,更加优美和易读。

实现方法如下:

在 web.config 文件中加入以下代码:

<rule name="Rewrite article list" stopProcessing="true">
  <match url="^articles/(.*)/(.*)/$" />
  <action type="Rewrite" url="/articles.php?type={R:1}&amp;page={R:2}" />
</rule>

这段代码会将 URL 中的“/articles/[type]/[page]/”转换为“/articles.php?type=[type]&page=[page]”。

然后在 articles.php 文件中,可以通过 $_SERVER['PATH_INFO'] 来获取 URL 参数:

<?php
// 获取 URL 参数
$url_param = explode('/', $_SERVER['PATH_INFO']);
$article_type = $url_param[2];
$page_num = $url_param[3];

// 根据参数查询文章列表
// ...
?>

示例二

假设我们有一个东西列表页面,URL 的格式为“/things.php?type=book&sort=price&order=asc”,如果使用 PHP 伪静态,可以将其转换为“/thing/book/price-asc/”。

实现方法如下:

在 web.config 文件中加入以下代码:

<rule name="Rewrite thing list" stopProcessing="true">
  <match url="^thing/(.*)/(.*)-(.*)/$" />
  <action type="Rewrite" url="/things.php?type={R:1}&amp;sort={R:2}&amp;order={R:3}" />
</rule>

这段代码会将 URL 中的“/thing/[type]/[sort]-[order]/”转换为“/things.php?type=[type]&sort=[sort]&order=[order]”。

然后在 things.php 文件中,可以通过 $_SERVER['PATH_INFO'] 来获取 URL 参数:

<?php
// 获取 URL 参数
$url_param = explode('/', $_SERVER['PATH_INFO']);
$thing_type = $url_param[2];
$thing_sort = substr($url_param[3], 0, strpos($url_param[3], '-'));
$thing_order = substr($url_param[3], strpos($url_param[3], '-') + 1);

// 根据参数查询东西列表
// ...
?>

这两个例子说明了 PHP 伪静态的实现过程,以及如何将普通的 URL 转换为更加优美的形式。当然,具体实现还需要根据自己的具体需求进行调整和修改。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php 伪静态之IIS篇 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • IIS W3C日志记录字段和HTTP状态代码的说明

    下面就来详细讲解一下”IIS W3C日志记录字段和HTTP状态代码的说明”的完整攻略。 什么是IIS W3C日志记录字段? IIS W3C 日志是 Internet 信息服务 (IIS) 提供的一种标准格式的日志文件。这种日志文件可以记录服务器上每个请求的详细信息,如请求类型、请求的 URL、响应代码和响应时间等。IIS W3C日志记录字段包括以下信息: 时…

    IIS 2023年5月26日
    00
  • Windows server 2003卸载和安装IIS的图文教程

    下面是“Windows server 2003卸载和安装IIS的图文教程”的完整攻略: 一、卸载IIS 打开“开始”菜单,依次选择“控制面板” – “添加/删除程序”; 在“添加/删除程序”窗口中,找到“IIS”并勾选; 点击窗口右侧的“删除”按钮,等待卸载完成。 二、安装IIS 在Windows server 2003操作系统下,单击“开始”按钮,在弹出的…

    IIS 2023年5月26日
    00
  • IIS监控请求脚本分享

    关于 “IIS监控请求脚本分享” 的完整攻略,我将从以下四个方面进行说明: 背景和需求 本脚本主要是为了监控IIS服务器上某个网站的请求数量、请求耗时和状态码等,对于网站管理员来说非常实用。在使用之前,需要满足以下三个条件: 服务器需要安装IIS,且需要开启IIS日志功能; 网站需要开启详细错误报告功能; 操作系统为Windows Server 2008或以…

    IIS 2023年5月26日
    00
  • win2003 iis asp.net伪静态配置图解

    标题:win2003 iis asp.net伪静态配置图解 什么是伪静态 伪静态,又叫做“伪装静态”,是指通过URL重写技术将动态页面的URL转换成静态页面的URL,并将其呈现给用户的一种技术。伪静态可以提高网站的SEO效果,使搜索引擎更容易索引和收录网站内容。在IIS服务器上,我们可以通过配置URL重写规则来实现ASP.NET伪静态的功能。 配置IIS伪静…

    IIS 2023年5月26日
    00
  • 完全重新安装IIS

    完全重新安装IIS是一种常用的解决IIS相关的问题的方法,本文将详细介绍这一过程。 1. 确定是否需要重新安装IIS 在进行完全重新安装IIS之前,我们需要确认是否真的需要这样做。如果您的IIS遇到了严重的问题,如无法启动,配置文件损坏等,或者已尝试了其他解决方法仍然无法解决问题时,您可以考虑进行完全重新安装IIS。 2. 备份IIS配置文件 在重新安装II…

    IIS 2023年5月26日
    00
  • 通过IIS自带工具Iisapp.vbs查询哪个w3wp.exe站点占用资源(cpu或内存)

    要通过IIS自带工具Iisapp.vbs查询哪个w3wp.exe站点占用资源(cpu或内存)的,可以按照以下步骤进行: 打开命令提示符窗口,切换到IIS的系统目录(默认为C:\Windows\System32\inetsrv)。 在命令提示符窗口中输入以下命令,查询正在运行的w3wp.exe进程: cscript.exe iisapp.vbs 运行该命令后,…

    IIS 2023年5月26日
    00
  • IIS+FastCGI+PHP5.3+MySQL5.1+Gzip配置图文详细教程

    下面我将为您详细讲解“IIS+FastCGI+PHP5.3+MySQL5.1+Gzip配置图文详细教程”的完整攻略。 前置条件 在开始配置之前,我们需要准备以下软件: IIS: Internet Information Services,Windows 系统的 Web 服务器; FastCGI: 为 IIS 提供 PHP 解析能力的扩展; PHP5.3: P…

    IIS 2023年5月26日
    00
  • iis提示您指定的网页无法访问! 错误类型:500

    这个错误提示意味着服务器遇到错误并无法处理请求。这种情况通常会导致网站无法访问或者无法正常运行。以下是解决这个问题的一些方法: 检查IIS日志 在IIS日志中查找相关信息有助于确定引起500错误的根本原因。可以使用以下步骤查找IIS日志: 打开IIS管理器。 选择要分析的网站,选中它的应用程序池,然后选择“高级设置”。 在“高级设置”选项卡中,找到“启用网站…

    IIS 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部