php伪静态之APACHE篇

下面是“php伪静态之APACHE篇”的完整攻略:

什么是php伪静态

在讲解php伪静态之前,需要先了解什么是URL重写。URL重写是指将动态的URL通过特定的规则转换成静态的URL,以便用户更好地理解和记忆。而PHP伪静态(也叫伪静态化)是指通过URL重写的方式将动态的PHP网页URL转换成静态的URL,通过这种方式可以隐藏网站的真实地址,提高网站的安全性,并且搜索引擎也更容易索引静态页面。

Apache配置

实现PHP伪静态需要对Apache服务器进行配置,具体步骤如下:

第一步:开启mod_rewrite模块

Apache默认并没有开启mod_rewrite模块,需要手动开启。

sudo a2enmod rewrite

第二步:配置.htaccess文件

在网站根目录下创建一个名为“.htaccess”的文件,将以下代码拷贝进去:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?/$1 [L]
  • RewriteEngine On:开启Apache的URL重写引擎
  • RewriteCond %{REQUEST_FILENAME} !-f:如果请求的文件不存在
  • RewriteCond %{REQUEST_FILENAME} !-d:如果请求的文件夹不存在
  • RewriteRule ^(.*)$ index.php?/$1 [L]:将符合规则的URL重写成“index.php?/参数”模式

第三步:修改php.ini文件

打开php.ini文件,将“cgi.fix_pathinfo”设置为0。这样可以防止攻击者通过URL注入的方式获取服务器敏感信息。

cgi.fix_pathinfo=0

示例一:URL重写

在上述配置完成后,可以将动态的URL重写成静态的URL。例如,将“www.example.com/index.php?action=list&id=1001”重写成“www.example.com/list/1001.html”。

.htaccess文件配置:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^list/(\d+).html$ index.php?action=list&id=$1 [L]

PHP代码:

$action = $_GET['action'];
$id = $_GET['id'];
echo "action=".$action.", id=".$id;

访问URL:www.example.com/list/1001.html

输出结果:action=list, id=1001

示例二:隐藏URL参数

在某些应用场景下,需要隐藏URL参数,例如将“www.example.com/index.php?action=product&id=1001”隐藏成“www.example.com/product/1001.html”。

.htaccess文件配置:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^product/(\d+).html$ index.php?action=product&id=$1 [L]

PHP代码:

$action = $_GET['action'];
$id = $_GET['id'];
echo "action=".$action.", id=".$id;

访问URL:www.example.com/product/1001.html

输出结果:action=product, id=1001

到此为止,php伪静态的APACHE篇攻略就讲解完毕了。

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

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

相关文章

  • 奔腾G4560配什么主板和显卡好?最佳七代奔腾G4560配置清单推荐

    奔腾G4560配什么主板和显卡好? 前言 奔腾G4560是一款性价比非常高的处理器,但是它并不是性能最高的CPU。因此,我们需要选择合适的主板和显卡来搭配使用,以达到性能和预算的平衡。 主板选择 主板类型 奔腾G4560是一款Kaby Lake架构的CPU,需要使用LGA1151插座的主板。在购买主板时,请注意选择支持LGA1151插座的主板。 主板芯片组 …

    PHP 2023年5月27日
    00
  • php实现的中文分词类完整实例

    下面我将为您详细讲解如何实现一个中文分词类的完整攻略。 1. 确定需求 在实现中文分词类之前,需要清楚自己的需求是什么,需要分词的内容是什么,以便后续的实现。 2. 选择分词算法 中文分词算法有很多种,比如基于规则、基于统计等,针对不同的语料库和需求,可以选择不同的分词算法,如 jieba分词,ansj分词 等。 3. 安装分词库 在确定分词算法后,可以通过…

    PHP 2023年5月26日
    00
  • PHP安全技术之 实现php基本安全

    实现PHP基本安全主要包括以下几个方面: 一、文件目录安全 确保文件权限安全:web服务器必须拥有读取和执行文件的权限,而其他人所拥有的权限最好不能超过只读,不应该写或执行等敏感操作。将文件权限设置为644或755即可。为了提高安全性,应尽可能将敏感文件(如配置文件、日志文件等)放在非web目录下。 确保目录安全:为了防止用户通过URL访问到敏感的目录,可以…

    PHP 2023年5月27日
    00
  • PHP pathinfo()获得文件的路径、名称等信息说明

    要获得文件的路径、文件名、扩展名等信息,可以使用PHP的pathinfo()函数。该函数接收一个参数,即文件路径字符串,返回一个数组,包含文件路径、文件名、扩展名等信息。下面是详细的攻略: 函数格式 pathinfo( $path, $options ); 其中,$path 表示文件路径字符串,$options 是可选参数,可以设置返回信息的方式。 返回值 …

    PHP 2023年5月26日
    00
  • php PATH_SEPARATOR判断当前服务器系统类型实例

    在PHP中,PATH_SEPARATOR是系统路径分隔符,Linux和Unix系统上的路径分隔符为“:”,Windows系统上的路径分隔符为“;”。可以通过PATH_SEPARATOR来判断当前运行PHP的服务器系统类型。 具体实现方式是,使用PATH_SEPARATOR常量来拆分路径,如果返回的是一个字符串,就说明运行PHP的服务器系统类型是Windows…

    PHP 2023年5月30日
    00
  • PHP 序列化和反序列化函数实例详解

    PHP 序列化和反序列化函数实例详解 什么是 PHP 序列化和反序列化 PHP 序列化指将 PHP 对象(数组、类实例等)转化为字符串的过程,进行序列化后我们就可以将其存储或者传输到其他 PHP 程序中进行反序列化。PHP 反序列化则是将序列化后的字符串还原为 PHP 对象。在序列化与反序列化的过程中,我们可以采用 serialize() 和 unseria…

    PHP 2023年5月26日
    00
  • 学习php设计模式 php实现适配器模式

    学习PHP设计模式以及PHP实现适配器模式,包括以下三个部分: 什么是设计模式 设计模式是在软件开发中经验的总结,是一种解决特定问题的可复用的思想方法。设计模式提供了一种通用的解决方案,帮助开发者解决在软件开发中常见的问题,提高软件开发效率。 什么是适配器模式 适配器模式是一种结构型设计模式,它将不兼容的接口转换为可兼容的接口,以便不同的类之间能够相互通信。…

    PHP 2023年5月27日
    00
  • 微信小程序用户授权,以及判断登录是否过期的方法

    微信小程序需要用户授权才能获取用户的信息,包括头像、昵称等。同时也需要判断用户的登录是否过期,以便及时更新用户信息。本文将为大家详细讲解微信小程序用户授权,以及判断登录是否过期的方法,内容分为以下部分: 用户授权的流程和方法 判断登录是否过期的方法 示例说明 用户授权的流程和方法 用户授权的流程如下: 在小程序中,使用 button 组件获取用户授权 用户点…

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