php伪静态之APACHE篇

yizhihongxing

下面是“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日

相关文章

  • IIS 环境下配置PHP5+MySql+PHPMyAdmin

    下面是在IIS环境下配置PHP5+Mysql+PHPMyAdmin的完整攻略: 环境准备 首先,我们需要准备以下环境: 操作系统:Windows Server 2008或更高版本 IIS:版本为7.0或更高版本 PHP5:版本为5.6.31或更高版本 MySQL:版本为5.7或更高版本 PHPMyAdmin:版本为4.7.4或更高版本 我们假设以上环境已经准…

    PHP 2023年5月24日
    00
  • PHP实现的简单排列组合算法应用示例

    PHP实现的简单排列组合算法应用示例 在程序开发中,我们时常需要用到排列组合算法来解决问题。PHP是一种十分流行的编程语言,提供了各种各样的函数帮助我们处理排列组合问题。下面是PHP实现的简单排列组合算法应用示例的完整攻略,希望能够帮助你更好地理解和应用排列组合算法。 全排列算法示例 以下是通过PHP实现的全排列算法示例,代码如下: function per…

    PHP 2023年5月23日
    00
  • PHP 字符串 小常识

    以下是关于 PHP 字符串的小常识的详细攻略。 什么是 PHP 字符串? 在 PHP 中,字符串是一种数据类型。它是一些字符组成的序列,可以是字母、数字、符号或空格等。 在 PHP 中,字符串可以通过单引号或双引号括起来。需要注意的是,如果使用单引号括起来的字符串中出现单引号,在字符串中需要使用转义字符进行处理。 常用的字符串函数 PHP 中提供了很多字符串…

    PHP 2023年5月23日
    00
  • 2套5000左右热门游戏主机电脑配置推荐 经典双平台任选

    2套5000左右热门游戏主机电脑配置推荐 经典双平台任选 作为浸入式游戏体验的重要硬件之一,游戏主机电脑配置的选购对玩家来说非常重要。对于预算在5000元左右的玩家而言,也有一些不错的选择。本篇攻略将就这一预算范围内的游戏主机电脑配置进行推荐。推荐的两个方案可以分别运行经典的游戏平台,同时也能玩到目前热门的游戏。 电脑配置推荐 下面是两个电脑配置方案。方案一…

    PHP 2023年5月27日
    00
  • 详解PHP中数组函数的巧用

    详解PHP中数组函数的巧用 PHP作为一门脚本语言,常常需要处理大量的数据,而数组作为一种常见的数据结构,其所涉及的操作也非常多。在这里,我们将介绍PHP中一些常用的数组函数,以及它们的一些巧用方法,希望对PHP开发者的工作有所帮助。 implode() / explode() 在处理字符串时,经常会遇到将一串字符串分割成多个子串的情况,或者将多个子串拼接成…

    PHP 2023年5月26日
    00
  • 利用php做服务器和web前端的界面进行交互

    利用php做服务器和web前端的界面进行交互,一般常用的方式是使用Ajax技术。下面是详细的攻略和示例: 1. 创建PHP后端脚本 首先,我们需要创建一个用于处理前端请求和响应的PHP脚本。这个脚本会负责接收前端发送的请求,并返回处理结果。具体的代码实现可以参考下面的示例: <?php if(isset($_POST[‘action’])){ $act…

    PHP 2023年5月27日
    00
  • php array_map使用自定义的函数处理数组中的每个值

    下面是关于 “php array_map使用自定义的函数处理数组中的每个值” 的完整攻略。 什么是 array_map 函数? array_map 函数是 PHP 标准库中的函数,它将一个数组的所有元素通过某个回调函数映射到另一个数组中,并返回新的数组。通俗的来说,就是通过一个函数对一个数组中的每个元素做处理,得到一个经过处理后的新数组。 array_map…

    PHP 2023年5月26日
    00
  • PHP中Date()时间日期函数的使用方法小结

    下面是关于“PHP中Date()时间日期函数的使用方法小结”的详细讲解: 1. 什么是Date()函数 在PHP中,Date()函数能够返回当前日期和时间。Date()函数有很多不同的参数,可以输出各种格式的日期和时间。 2. 常用参数 下面是Date()函数的一些常用参数: a. Y:四位数年份 $date = date("Y"); e…

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