Apache配置伪静态

注意:本文中关于Apache的配置修改,一定要记得重启Apache服务

伪静态的实现有多种方法,比如通过获取path_info信息使用php逻辑来达到伪静态,使用Apache提供的rewrite来达到伪静态,本文主要对Apache提供的rewrite实现伪静态做个记录

1、开启Apache服务的mod_rewrite模块:

编辑 下的httpd.conf文件:

2、编写伪静态规则

具体的规则的写法可以学习Apache手册中url重写:http://apache.jz123.cn/rewrite/rewrite_guide.html

规则写在什么地方?可以直接写在httpd.conf文件中,也可以写在项目文件中的 .htaccess文件中,当要写在 .htaccess文件中时记得在httpd.conf文件中开启对应目录的AllowOverride 

3、我们使用 .htaccess 的方式(虽然手册中说这会影响Apache的性能,但是我们是测试,所以为了不影响其他项目,就采用这种方式)

编写 .htaccess 文件


1

2

3

4

5

6

7

8

9

10

<IfModule mod_rewrite.c>

  Options +FollowSymlinks

  RewriteEngine On

  # 判断是否存在请求的目录,

  RewriteCond %{REQUEST_FILENAME} !-d

  # 判断是否存在请求的文件,

  RewriteCond %{REQUEST_FILENAME} !-f

  # 如果上面请求的路径文件存在,直接执行请求文件,不存在就继续执行下面的规则

  RewriteRule ^detail/([\d]+).html$ detail.php?id=$1

</IfModule>

上面的规则意思是:当请求的文件存在时直接执行请求文件,当不存在时执行匹配最后的规则,进入到detail.php文件执行

4、当我们访问 http://localhost/statichtml/detail/3.html

因为 statichtml/detail/3.html 这个文件是不存在的,这时我们正真访问的其实是http://localhost/statichtml/detail.php?id=3

当我们访问:http://localhost/statichtml/detail/4.html

4.html这个文件是存在的

此时直接直接执行文件返回:

基本在Apache上的伪静态,简答的配置就是这样,当然你可以根据自己的需求将规则更加优雅。这完全都是你自己的需求和能力决定的。我只是在这里做一个简答的流程性的记录,只有配置的规则的一些只是在Apache手册上面有详细的说明。如果我们不是服务器管理员,只是一个很普通很普通的程序员,我们就先了解这么一个流程,以后工作中用到的时候好好看看手册,毕竟Apache的手册是很详细的。如果想着想着仔细的学习Apache手册,然后记住,这是很难的,如果我们不经常操作,很容易就忘记了。所以还是了解各流程然后需要时学习手册,这样最好。

来自为知笔记(Wiz)

时间: 2024-08-01 13:54:01

Apache配置伪静态的相关文章

Apache 开启伪静态模块

1.在 Apache 配置中启用 Rewrite,打开配置文件 httpd.conf, 若无法找到此文件,可使用 find / -name httpd.conf 如下图所示: 注意:本文搜索的httpd.conf的路径是 /etc/httpd/conf/httpd.conf 文件,此文对此进行说明. 找到 # LoadModule rewrite_module modules/mod_rewrite.so 去除前面的 #,开启伪静态模块. 注意:Linux 中 # 代表注释信息 修改前: # L

转--htaccess语法教程 apache服务器伪静态规则教程

转自:http://blog.csdn.net/qingli518/article/details/9118361 htaccess语法教程apache服务器伪静态规则教程 注:如果你是为了找Discuz!论坛的为静态规则的话,其实不用看这里,Discuz!的后台有个链接点进去直接Copy就是了.PHPwind的我就不知道了,没用过,后台应该也有吧. 这几天一直在研究Apache的重写规则,虽然网上有很多教程,不过发现大部分都是抄袭一个人的,一点都不全,所以我想写一个简单的易于理解的教程,我学习

2015-04-29/2015-05-04 LAMP第二部分apache配置 discuz

课程大纲: 1. 下载discuz! mkdir /data/www cd /data/www wget  http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_GBK.zip unzip Discuz_X3.2_SC_GBK.zip mv upload/*  . 2. 配置第一个虚拟主机 vi  /usr/local/apache2/conf/httpd.conf 删除httpd.conf中的这行前面的警号 #Include conf/e

lamp(二) apache 配置

1. 下载discuz! mkdir /data/wwwcd /data/wwwwget  http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_GBK.zipunzip Discuz_X3.2_SC_GBK.zipmv upload/*  . 2. 配置第一个虚拟主机删除httpd.conf中的这行前面的警号#Include conf/extra/httpd-vhosts.confvim /usr/local/apache2/conf/e

本地wampserver如何配置伪静态

第一步:找到Apache安装目录下httpd.conf这个文件,搜索找到,"LoadModule rewrite_module modules/mod_rewrite.so",找到这一行,去掉前面的"#": 第二步:找到"AllowOverride None"改为"AllowOverride All".: 第三步:重启apache 第四步:新建.haccess文件,放在当前网站根目录下,在.haccess文件中写伪静态规则,看

nginx和apache的伪静态区别

在原来apche网站数据 转移到nginx服务器上 伪静态功能打开出错,先看一下apache的伪静态格式 apache伪静态: RewriteEngine on RewriteRule ^(.*)/ask/([0-9]+)\.html$ $1/ask/index.php?page=$2 Nginx的配置 rewrite ^(.*)/ask/([0-9]+).html$ $1/ask/index.php?page=$2 last: 其实就去掉Ruel 和 括号右边的斜杠就可以  后面别忘了加las

Nginx/Apache之伪静态设置 - 运维小结

一.什么是伪静态伪静态即是网站本身是动态网页如.php..asp..aspx等格式动态网页有时这类动态网页还跟"?"加参数来读取数据库内不同资料,伪静态就是做url重写操作(即rewrite).很典型的案例即是discuz论坛系统,后台就有一个设置伪静态功能,开启伪静态后,动态网页即被转换重写成静态网页类型页面,通过浏览器访问地址和真的静态页面没区别.但是记住:做伪静态的前提就是服务器要支持伪静态重写URL Rewrite功能. 考虑搜索引擎优化(即SEO),将动态网页通过服务器处理成

centos LAMP第二部分apache配置 第二十节课

centos   LAMP第二部分apache配置  第二十节课 上半节课 下半节课 f

Linux Apache 配置反向代理

最近遇到一个项目,需要访问某单位的内网服务器,对方要求必须要配置一个前置机,来转发所有的web请求,然后就学了一下反向代理,查了一些资料,也完成了HelloWorld的例子. 关于反向代理的介绍,可以参考 介绍1和 介绍2 相互补充吧,关于概念的介绍挺不错的. 我现在仅仅是完成了第一步,就是配置转发请求. 操作系统是centos,关于linux安装apache就不多说了 apache安装完成后,进入 /etc/httpd/conf目录,打开 httpd.conf文件 然后 1.先检查代理模块是否