以下是摘抄http://jingyan.baidu.com/article/86112f132aa7462737978718.html的,作为记录,方便以后参考

现有的在线网上视频教程对伪静态的讲解比较简单,但不全面,我以一个真实案例来讲解伪静态的制作过程。

步骤开始:

(1) 启用rewrite模块,在默认情况下,没有启用

修改httpd.conf文件,启动rewrite模块

去掉LoadModule rewrite_module modules/mod_rewrite.so前的#号即可

(2) 配置我们的虚拟主机

httpd.conf 打开虚拟主机的配置文件

# Virtual hosts

Include conf/extra/httpd-vhosts.conf

修改 httpd-vhost.conf

<VirtualHost *:80>

DocumentRoot "F:/Appserv/www/xh"

ServerName xh.com

<Directory "F:/Appserv/www/xh">

AllowOverride All

</Directory>

</VirtualHost>

我是用的是appserv集成环境,安装在F盘

(3) 在hosts文件中,配置ip和主机的对应关系

127.0.0.1 xh.com

(4) 在F:/Appserv/www/xh目录下建立.htaccess文件,写入

<IfModule mod_rewrite.c>

RewriteEngine on

RewriteRule ^([0-9]+).html$   index.php/Index/index/p/$1

RewriteRule ^([A-Z])_(\d+).html$   index.php/List/index/first_letter/$1/p/$2

RewriteRule ^([A-Z]).html$   index.php/List/index/first_letter/$1

</IfModule>

解释一下上面那段话,

访问2.html  =>  index.php/Index/index/p/2

D_2.html  =>  index.php/List/index/first_letter/D/p/2

D.html  =>  index.php/List/index/first_letter/D

上面的url重写规则是我的一个真实案例,详见http://www.xlyun.com对比参考

2.html表示全部歇后语的第二页,D_2.html表示以字母D打头的歇后语的第二页,而单独一个字母D就表示以D打头的以第一页

好了问题来了,大部分教程只告诉你怎么在.htaccess中重写url,那么我们要让用户点击时显示的也是静态网址,这样表意清晰,目录结构简单,对用户对搜索引擎都比较友好,我们是不会在地址栏里头一个一个的敲入静态网址的,这个问题该怎么解决呢?

很简单,只需对模板中的分页标签变量{$page}做一个简单的正则替换,如下,

首页列表分页的替换:

<div class="pagination"><?php echo preg_replace('/index.php\/Index\/index\/p\/(\d+)\.html/','$1.html',$page); ?></div>

字母列表分页的替换:<div class="pagination"><?php echo preg_replace('/index.php\/List\/index\/first_letter\/([A-Z])\/p\/(\d+)\.html/','$1_$2.html',$page); ?></div>

循环26个字母的改写(去掉没有结果的那些字母,只需做一个简单的链接改写,改成 字母.html 即可,无需正则替换)

for($i=97;$i<=122;$i++) {

$c = strtoupper(chr($i));

if($c==I || $c==U || $c==V) continue;

echo '<li><a href="' . $c . '.html">'.$c.'</a></li>';

}

好了,伪静态就这么简单,我以这个简单的例子阐述了伪静态从头到尾的过程,方便大家学习和交流,目的在于针对多数教程的一个补充,需要完成更复杂任务的同学,请自行深入研究伪静态吧!

php Apache配置伪静态的介绍的更多相关文章

  1. Apache配置伪静态

    Apache配置伪静态 注意:本文中关于Apache的配置修改,一定要记得重启Apache服务 伪静态的实现有多种方法,比如通过获取path_info信息使用php逻辑来达到伪静态,使用Apache提 ...

  2. mac os apache 配置方法详细介绍

    我使用的Mac OS X版本是10.8.2,Mac自带了Apache环境. 启动Apache 设置虚拟主机 启动Apache 打开“终端(terminal)”,输入 sudo apachectl -v ...

  3. apache配置伪静态Rewrite

    1: 修改apache的httpd.conf文件 找到这一行 #LoadModule rewrite_module modules/mod_rewrite.so 改成 LoadModule rewri ...

  4. PHP Apache 配置伪静态

    1.首先是开启rewrite_module(如何开启,百度搜索) 2.创建.htaccess文件(如何创建,百度搜索) 3.在.htaccess文件中打开重写服务:RewriteEngine On 4 ...

  5. apache 的rewrite函数配置伪静态

    配置伪静态目的:对于访问比较长的uri,利于网站搜索工具更容易记住,换句话利于SEO 在配置文件中添加或找到 <IfModule mod_rewrite.c> </IfModule& ...

  6. centos LAMP第二部分apache配置 下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转 配置apache的访问日志 配置静态文件缓存 配置防盗链 访问控制 apache rewrite 配置开机启动apache tcpdump 第二十节课

    centos    LAMP第二部分apache配置  下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转  配置apache的访问日志  配置静态文件缓存  配置防盗链 ...

  7. 使用WampServer搭建本地PHP环境,绑定域名,配置伪静态

    倡萌之前介绍过 USBWebserver 快速搭建本地PHP环境 ,推荐USBWebserver的原因在于它是绿色的,不需要安装,想使用就手动运行下即可.但是 USBWebserver 也有自身的弱点 ...

  8. Tomcat:利用Apache配置反向代理、负载均衡

    本篇主要介绍apache配置反向代理,介绍了两种情况:第一种是,只使用apache配置反向代理:第二种是,apache与应用服务器(tomcat)结合,配置反向代理,同时了配置了负载均衡. 准备工作 ...

  9. Apache配置虚拟文件夹

    作为一个Android开发人员,一直以为,至少应该有一个server语言,最近慢慢学习php,当然学习Apache使用.本文介绍Win7环境下,怎样配置Apache的虚拟文件夹. 首先,找到我们Apa ...

随机推荐

  1. Day2平衡树笔记

    线段树不支持的操作:删除,插入 常见的平衡树 treap 慢||好写 sbt(大小平衡的树) 非常快 比较好写 ||功能不全 rbt 红黑树 特别快 || 非常难写   以上操作支持插入删除O(Nlo ...

  2. 对ng-repeat的表格内容添加不同样式:ng-style

    对ng-repeat的表格内容添加不同样式,html代码: <tr ng-repeat="x in tableData"> <td>{{x.networkN ...

  3. 仙人掌的同构(hash)

    关于仙人掌的同构,主要是我太蒟蒻了QAQ,问了好几位大佬才弄好. 手撕仙人掌,你得先有手套 ,你得先了解以下基本知识 a.点双连通分量,没什么好说得,仙人掌上有环,判环用点双 b.树的hash点这里 ...

  4. ThinkPHP5.0---静态方法

    ThinkPHP5大量的使用了这种可以直接使用::调用的方法,它们有一个很响亮的名字:静态方法.静态方法的引用,大幅提升了程序的运行效率,降低了资源的占用. 静态方法(ASK$ANSWER) 为什么要 ...

  5. centos7.2 64位安装java

    1.  wget http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk- ...

  6. POJ——T2271 Guardian of Decency

    http://poj.org/problem?id=2771 Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 5932   A ...

  7. mIsFunui-判断Funui方法

    1.有时候我们根据自己的需要,修改了frameword下的代码,但是,我们又不希望影响第三方,这时候我们就可以在修改处添加一个我们自己的标志位,如,mIsFunui 它是定义在我们自定义的theme里 ...

  8. AndroidStudio 内存泄漏分析 Memory Monitor

    ok.写一段内存泄漏的code private TextView txt; @Override protected void onCreate(Bundle savedInstanceState) { ...

  9. go package的理解

    golang package是基本的管理单元, 同一个package下面,可以有非常多的不同文件,只要 每个文件的头部    都有 如 "package xxx" 的相同name, ...

  10. Day1:If else流程判断

    一.if...else语句 if 条件成立: 执行条件成立后的代码 else: 执行条件不成立的代码 注:注意有冒号,python会强制缩进!一般语句都必须顶格写,缩进是缩进一个tab键,等于4个空格 ...