apache 伪静态页面
2013-09-27 22:01
260 查看
首先自我介绍一下,我是一个前端人员,对于后台的知识也是知之甚少;有什么不足之处请谅解!
好了,现在我介绍一下 php怎么进行伪静态页面的实现;
我相信大家都见过这样格式的网址,你一定会好奇他们是怎么做的;
http://c/123.html http://www.rmtime.com/rm-123.html http://www.rmtime.com/rm-a-2-b-213-c-3.html
他们是怎么做到的,难道他们不用传递id或者tid等变量吗
我们知道一般的网站传递参数都是以
http://www.rmtime.com/rm.php?tid=1
这种形式来传递的,这种形式他不利于seo搜索排名;
好,废话不多说了!
步骤:
1.apache的配置 伪静态
2.新建 .htaccess
3.编写相关 伪静态 规则(简单实例)
配置apache 伪静态
首先我们找到 httpd.conf 这个文件;
举例:
C:\wamp\bin\apache\apache2.2.8\conf\httpd.conf
打开这个文件;
搜索:
#LoadModule rewrite_module modules/mod_rewrite.so
把他前面的#去掉,
接着
在httpd.conf中
找到
把里面的
改为All
保存
这样apache的基本配置就做好了!
下一步就是新建 .htaccess文件,把他存放在网站的根目录下;
注意:在window操作系统下是无法新建的;
解决办法:
![](https://img-blog.csdn.net/20130927215553656)
这样就创建在网站的根目录了;
接着我们用记事本打开此.htaccess文件
粘贴这段
<IFMODULE mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule rmtime-([0-9]*).html$ rmtime.php?id=$1
</IFMODULE>
本地新建 rmtime.php
内容是:
<?php echo $_GET['id']; ?>
保存
服务方式:
localhost / rmtime-12.html
如果页面显示12那么说明实验成功!恭喜!
相关规则例子:
例子一:
原先:http:// www.rmtime.com / rmtime.php?id=123
处理后 : http:// www.rmtime.com / 123.html
规则 : RewriteRule ([0-9]+).html$ rmtime.php?id=$1
例子二:
原先:http:// www.rmtime.com / rmtime.php?id=123
处理后 : http:// www.rmtime.com / rm-123.html
规则 : RewriteRule rm-([0-9]+).html$ rmtime.php?id=$1
例子三:
http://www.rmtime.com /rmtime.php?a=a1&b=b1&c=c1
RewriteRule ^(.*)-htm-a-([a-z0-9\_]+)-b-([a-z0-9\_]+)-c-([a-z0-9\_]+.html)$ rmtime.php?a=&b=&c=
规则
%{HTTP_HOST}
:
是指取得用户访问的URL的主域名 然后空格后面是一个正则表达式匹配,意识就
是说是否是 nbphp.com
RewriteRule ^(.*)$ http://www.abc.com/$1 [R=301,L]
R的含义是redirect,即重定向,该请求不会再被apache交给后端处理,而是直接
返回给浏览器进行重定向跳转。301是返回的http状态码,具体可以参考http rfc
文档,跳转都是3XX。
L是last,即最后一个rewrite规则,如果请求被此规则命中,将不会继续再向下
匹配其他规则。
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
%{REQUEST_FILENAME} 请求的文件名
!-f 不是文件或不存在
!-d 不是目录或不存在
[L] 这是最后一个匹配项,不再往下匹配
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
意思就是说将所有页面全部指向index.php上。我估计可能是某段用来静态化页面
的代码吧。
好了,现在我介绍一下 php怎么进行伪静态页面的实现;
我相信大家都见过这样格式的网址,你一定会好奇他们是怎么做的;
http://c/123.html http://www.rmtime.com/rm-123.html http://www.rmtime.com/rm-a-2-b-213-c-3.html
他们是怎么做到的,难道他们不用传递id或者tid等变量吗
我们知道一般的网站传递参数都是以
http://www.rmtime.com/rm.php?tid=1
这种形式来传递的,这种形式他不利于seo搜索排名;
好,废话不多说了!
步骤:
1.apache的配置 伪静态
2.新建 .htaccess
3.编写相关 伪静态 规则(简单实例)
配置apache 伪静态
首先我们找到 httpd.conf 这个文件;
举例:
C:\wamp\bin\apache\apache2.2.8\conf\httpd.conf
打开这个文件;
搜索:
#LoadModule rewrite_module modules/mod_rewrite.so
把他前面的#去掉,
接着
在httpd.conf中
找到
# AllowOverride controls what directives may be placed in .htaccess files. # It can be “All”, “None”, or any combination of the keywords: # Options FileInfo AuthConfig Limit #
把里面的
AllowOverride
改为All
保存
这样apache的基本配置就做好了!
下一步就是新建 .htaccess文件,把他存放在网站的根目录下;
注意:在window操作系统下是无法新建的;
解决办法:
这样就创建在网站的根目录了;
接着我们用记事本打开此.htaccess文件
粘贴这段
<IFMODULE mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule rmtime-([0-9]*).html$ rmtime.php?id=$1
</IFMODULE>
本地新建 rmtime.php
内容是:
<?php echo $_GET['id']; ?>
保存
服务方式:
localhost / rmtime-12.html
如果页面显示12那么说明实验成功!恭喜!
相关规则例子:
例子一:
原先:http:// www.rmtime.com / rmtime.php?id=123
处理后 : http:// www.rmtime.com / 123.html
规则 : RewriteRule ([0-9]+).html$ rmtime.php?id=$1
例子二:
原先:http:// www.rmtime.com / rmtime.php?id=123
处理后 : http:// www.rmtime.com / rm-123.html
规则 : RewriteRule rm-([0-9]+).html$ rmtime.php?id=$1
例子三:
http://www.rmtime.com /rmtime.php?a=a1&b=b1&c=c1
RewriteRule ^(.*)-htm-a-([a-z0-9\_]+)-b-([a-z0-9\_]+)-c-([a-z0-9\_]+.html)$ rmtime.php?a=&b=&c=
规则
%{HTTP_HOST}
:
是指取得用户访问的URL的主域名 然后空格后面是一个正则表达式匹配,意识就
是说是否是 nbphp.com
RewriteRule ^(.*)$ http://www.abc.com/$1 [R=301,L]
R的含义是redirect,即重定向,该请求不会再被apache交给后端处理,而是直接
返回给浏览器进行重定向跳转。301是返回的http状态码,具体可以参考http rfc
文档,跳转都是3XX。
L是last,即最后一个rewrite规则,如果请求被此规则命中,将不会继续再向下
匹配其他规则。
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
%{REQUEST_FILENAME} 请求的文件名
!-f 不是文件或不存在
!-d 不是目录或不存在
[L] 这是最后一个匹配项,不再往下匹配
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
意思就是说将所有页面全部指向index.php上。我估计可能是某段用来静态化页面
的代码吧。
相关文章推荐
- 关于在Apache和Weblogic中分别部署静态页面的对比报告
- apache中通过mod_rewrite实现伪静态页面的方法
- Nginx + Apache 高负载WEB动态页面与静态页面的分离
- nginx+apache实现动静态页面分离的web生产环境(二)
- apache mod_rewrite 伪静态页面
- 静态页面html、shtml增加动态内容 使用apache ssi
- Nginx/Apache 对图片,css,js等优化,静态页面设置过期时间
- 详谈Apache、Nginx和tomcat的区别以及处理静态页面和动态页面的方式
- 让Apache支持Rewrite静态页面重写的方法
- apache http server 初始配置(静态页面访问)
- apache、Nginx、Mongoose 静态页面性能对比
- Apache、Nginx、Mongoose 静态页面性能对比
- nginx+apache实现动静态页面分离的web生产环境(一)
- 页面静态化3 --- 伪静态技术之Apache的rewrite机制
- apache下用expires_module让浏览器缓存静态文件
- JSP页面的静态包含和动态包含使用方法
- apache的.htaccess文件同时实现HTTPS跳转及伪静态去掉index.php
- 静态的html页面想要设置使用浏览器缓存
- 基于annotation注解的Spring3 MVC Static Pages Example之四静态页面向学习笔记
- Apache和Tomcat实现集成、动静态资源分离、集群和负载均衡