php Apache配置伪静态的介绍
以下是摘抄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配置伪静态的介绍的更多相关文章
- Apache配置伪静态
Apache配置伪静态 注意:本文中关于Apache的配置修改,一定要记得重启Apache服务 伪静态的实现有多种方法,比如通过获取path_info信息使用php逻辑来达到伪静态,使用Apache提 ...
- mac os apache 配置方法详细介绍
我使用的Mac OS X版本是10.8.2,Mac自带了Apache环境. 启动Apache 设置虚拟主机 启动Apache 打开“终端(terminal)”,输入 sudo apachectl -v ...
- apache配置伪静态Rewrite
1: 修改apache的httpd.conf文件 找到这一行 #LoadModule rewrite_module modules/mod_rewrite.so 改成 LoadModule rewri ...
- PHP Apache 配置伪静态
1.首先是开启rewrite_module(如何开启,百度搜索) 2.创建.htaccess文件(如何创建,百度搜索) 3.在.htaccess文件中打开重写服务:RewriteEngine On 4 ...
- apache 的rewrite函数配置伪静态
配置伪静态目的:对于访问比较长的uri,利于网站搜索工具更容易记住,换句话利于SEO 在配置文件中添加或找到 <IfModule mod_rewrite.c> </IfModule& ...
- centos LAMP第二部分apache配置 下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转 配置apache的访问日志 配置静态文件缓存 配置防盗链 访问控制 apache rewrite 配置开机启动apache tcpdump 第二十节课
centos LAMP第二部分apache配置 下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转 配置apache的访问日志 配置静态文件缓存 配置防盗链 ...
- 使用WampServer搭建本地PHP环境,绑定域名,配置伪静态
倡萌之前介绍过 USBWebserver 快速搭建本地PHP环境 ,推荐USBWebserver的原因在于它是绿色的,不需要安装,想使用就手动运行下即可.但是 USBWebserver 也有自身的弱点 ...
- Tomcat:利用Apache配置反向代理、负载均衡
本篇主要介绍apache配置反向代理,介绍了两种情况:第一种是,只使用apache配置反向代理:第二种是,apache与应用服务器(tomcat)结合,配置反向代理,同时了配置了负载均衡. 准备工作 ...
- Apache配置虚拟文件夹
作为一个Android开发人员,一直以为,至少应该有一个server语言,最近慢慢学习php,当然学习Apache使用.本文介绍Win7环境下,怎样配置Apache的虚拟文件夹. 首先,找到我们Apa ...
随机推荐
- popover弹出框
<style> #view{width: 300px;height: 200px;border: 1px solid red;} </style> 以上是为了viewport更 ...
- vmware workstation安装windows server 2019
提示需要输入密钥,选择[我没有密钥] 选择有桌面体验的 自定义 新建C盘 100G 选择100G的主分区,下一步 PS:未分配的空间,先不理,安装完系统,进桌面,再分配 开始安装.接下来就是等. 等. ...
- [Javascript AST] 1. Continue: Write a simple Babel plugin
We want to write a Babel Plugin, which move 'const versionRegex = /(/d+)\.(/d+)\.(/d+)/gi' out of fu ...
- libcurl 通过http协议下载文件并显示下载进度
vc6 测试工程下载地址:http://download.csdn.net/detail/mtour/8068053 代码如下: size_t my_write_func(void *ptr, siz ...
- shell脚本中的反引号,单引号,双引号与反斜杠
转自:http://blog.sina.com.cn/s/blog_6561ca8c0102we2i.html 反引号位 (`)经常被忽略,而且容易与单引号弄混.它位于键盘的Tab键的上方.1键的左方 ...
- 6.CPP风格数组
//数组初始化 1 #include <iostream> using namespace std; void main() { //C int a[5] = { 1,2,3,4,5 }; ...
- 关于程序中delay函数带来的繁琐问题
导致“滴滴”声音不准确的原因是因为,串口屏幕发送信息的时候会有delay() 的延迟. 得到的教训就是,无论在什么地方,最好都不要加delay的延迟.否则含有delay的子 函数加入到其他模块中,就会 ...
- SD卡与tf卡引脚转换
https://www.cnblogs.com/shangdawei/p/3255414.html
- vue使用jsonp
axios不支持jsonp,所以需使用其他插件:vue-jsonp npm i vue-jsonp -S 然后在 src/main.js : import Vue from 'vue' import ...
- 推荐一款优雅高效的免费在线APP原型工具
有段时间没有推荐干货给大伙了,今天是时候把压箱底的东西拿出来分享给大家了! 想要学习原型图绘制的小伙伴可以看过来,适合零基础的小白,五分钟就可以上手,绘制自己想要的产品原型图. 官方介绍:用户只需输入 ...