- 浏览: 223260 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
yjw0628:
text 和password无需分开处理.然后不要用input ...
jquery html5 实现placeholder 兼容password ie6 -
supercrsky:
不输入直接提交form会有各种问题。
jquery html5 实现placeholder 兼容password ie6 -
myfreespace:
嗯 谢谢提示,正在修改中
模仿新浪微薄 删除冒泡提示效果 -
王斌_code:
有bug,先点删除,再点取消,在冒泡消失前,点击删除(构造事件 ...
模仿新浪微薄 删除冒泡提示效果 -
王斌_code:
效果有点生硬,用jquery可以省不少事,而且效果很好
模仿新浪微薄 删除冒泡提示效果
mode-rewrite模块是apache中重要的模块,主要用来实现url跳转和重写,首先要启动该模块
在http.conf文件下去掉该模块前的#号,即可启动了,
他的配置规则是
rewriteEngine on 启动引擎
rewriteCond %{HTTP_HOST}!^www.ifensi.com[NC]正则匹配 ,nc表示不区分大小写
rewriteRule 转换规则^/(.*)http://www.ifensi.com/[l]上面不匹配就跳转到此页面,主要用来防止盗链的,
拟静态的配置
RewriteEngine on
RewriteRule ^/test([0-9]*).html/$ /test.php?id=$1表示你静态文字目录,可以是搜索引擎方便的发现更多页面信息,尤其是在新闻列表中,表示的意思是,当在浏览器地址栏中输入 testxx.html的时候,他会自动变为test.php?id=xx这样在浏览器中看,就像是文件是静态的,当然还有你目录与上面道理一样,
规则修正符就是用来匹配规则的,F 禁用url就是你无法访问, G返回401 就是在页面取消的时候,让搜索引擎只搜索一次,
也可以看启用.htaccess 在document_dir 下 修改alloverred all则支持在文件中写规范,这是比较常用的,因为我们不可能总去修改服务器的东西,
规范化url
在有些web服务器上,一个资源会拥有多个URL,在实际应用和发布中应该被使用的是规范的URL,其他的则是简写或者只在内部使用。无论用户在请求中使用什么形式的URL,他最终看见的都应该是规范的URL。
对所有不规范的URL执行一个外部HTTP重定向,以改变它在浏览器地址栏中的显示及其后继请求。下例中的规则集用规范的/u/user替换/~user,并修正了/u/user所遗漏的后缀斜杠。
RewriteRule ^/~([^/]+)/?(.*) /u/$1/$2 [R] RewriteRule ^/([uge])/([^/]+)$ /$1/$2/ [R]
在有不同的doucumentroot的情况下可以使用
RewriteEngine on
RewriteRule ^/$ /e/www/ [R]来重定向到不同的目录下,
后缀斜杠的问题
每个网管对引用目录后缀斜杠的问题都有一本苦经,如果遗漏了,服务器会产生一个错误,因为如果请求是/~quux/foo而不是/~quux/foo/ ,服务器就会去找一个叫foo的文件,而它是一个目录,所以就报错了。事实上,大多数情况下,它自己会试图修正这个错误,但是有时候需要你手工纠正,比如,在重写了许多CGI脚本中的复杂的URL以后。
解决这个微妙问题的方案是让服务器自动添加后缀斜杠。对此,必须使用一个外部重定向,使浏览器正确地处理后继的对诸如图片的请求。如果仅仅作一个内部重写,可能只对目录页面有效,而对内嵌有使用相对URL的图片的页面无效,因为浏览器有请求内嵌目标的可能。比如,如果不用外部重定向,/~quux/foo/index.html页面中对image.gif的请求,其结果将是/~quux/image.gif
所以,应该这样写:
RewriteEngine on RewriteBase /~quux/ RewriteRule ^foo$ foo/ [R]
虚拟用户主机
如果需要为用户username支持一个www.username.host.domain.com的主页,但不是用在此机器上建虚拟主机的方法,而是用仅在此机器上增加一个DNS记录的方法实现。
对HTTP/1.0的请求,这是无法实现的;但是对HTTP/1.1的在HTTP头中包含有主机名的请求,可以用以下规则集来内部地重写http://www.username.host.com/anypath为/home/username/anypath
RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.[^.]+\.host\.com$ RewriteRule ^(.+) %{HTTP_HOST}$1 [C] RewriteRule ^www\.([^.]+)\.host\.com(.*) /home/$1$2
负载的均衡
如何均衡www.foo.com
的负载到www[0-5].foo.com
(一共是6个服务器)?
这个问题有许多可能的解决方案,在此,我们讨论通称为“基于DNS”的方案,和特殊的使用mod_rewrite
的方案:
-
DNS循环(DNS Round-Robin)
最简单的方法是用
BIND
的DNS循环特性,只要按惯例设置www[0-9].foo.com
的DNS的A(地址)记录,如:www0 IN A 1.2.3.1 www1 IN A 1.2.3.2 www2 IN A 1.2.3.3 www3 IN A 1.2.3.4 www4 IN A 1.2.3.5 www5 IN A 1.2.3.6
然后,增加以下各项:
www IN CNAME www0.foo.com. IN CNAME www1.foo.com. IN CNAME www2.foo.com. IN CNAME www3.foo.com. IN CNAME www4.foo.com. IN CNAME www5.foo.com. IN CNAME www6.foo.com.
注意,上述看起来似乎是错误的,但事实上,它的确是
BIND
中的一个预期的特性,而且也可以这样用。无论如何,现在www.foo.com
已经被解析,BIND
可以给出www0-www6
,虽然每次在次序上会有轻微的置换/循环,客户端的请求可以被分散到各个服务器。但这并不是一个优秀的负载均衡方案,因为DNS解析信息可以被网络中其他名称服务器缓冲,而一旦www.foo.com
被解析为wwwN.foo.com
,则其后继请求都将被送往www.foo.com
。但是最终结果是正确的,因为请求的总量的确被分散到各个服务器了 -
DNS 负载均衡
一种成熟的基于DNS的负载均衡方法是使用http://www.stanford.edu/~schemers/docs/lbnamed/lbnamed.html的
lbnamed
程序,它是一个Perl5程序,带有若干辅助工具,实现了真正的基于DNS的负载均衡。 -
代理吞吐循环(Proxy Throughput Round-Robin)
这是一个使用
mod_rewrite
及其代理吞吐特性的方法。首先,在DNS记录中将www0.foo.com
固定为www.foo.com
,如下:www IN CNAME www0.foo.com.
其次,将
www0.foo.com
转换为一个专职代理服务器,即由这个机器把所有到来的URL通过内部代理分散到另外5个服务器(www1-www5
)。为此,必须建立一个规则集,对所有URL调用一个负载均衡脚本lb.pl
。RewriteEngine on RewriteMap lb prg:/path/to/lb.pl RewriteRule ^/(.+)$ ${lb:$1} [P,L]
以下是
lb.pl
:#!/path/to/perl ## ## lb.pl -- load balancing script ## $| = 1; $name = "www"; # the hostname base $first = 1; # the first server (not 0 here, because 0 is myself) $last = 5; # the last server in the round-robin $domain = "foo.dom"; # the domainname $cnt = 0; while (<STDIN>) { $cnt = (($cnt+1) % ($last+1-$first)); $server = sprintf("%s%d.%s", $name, $cnt+$first, $domain); print "http://$server/$_"; } ##EOF##
最后的说明:这样有用吗?www0.foo.com
似乎也会超载呀?答案是:没错,它的确会超载,但是它超载的仅仅是简单的代理吞吐请求!所有诸如SSI、CGI、ePerl等等的处理完全是由其他机器完成的,这个才是要点。 -
硬件/TCP循环
还有一个硬件解决方案。Cisco有一个叫LocalDirector的东西,实现了TCP/IP层的负载均衡,事实上,它是一个位于网站集群前端的电路级网关。如果你有足够资金而且的确需要高性能的解决方案,那么可以用这个。
发表评论
-
win7 php nginx配置
2012-05-14 17:13 0因为公司更换服务器,从apache到nginx,所以自己的环境 ... -
简单的sql注入及预防
2012-02-06 15:15 1000简单的sql注入是通过web页面中的输入框输入特殊的查询字符 ... -
phpexcel 生成表格
2011-11-18 10:29 5331/* * 导出excel表格 ... -
php curl模块加载失败 解决办法
2011-08-17 14:35 3093cURL 是一个利用URL语法规定来传输文件和数据的工具,支持 ... -
cakephp find like用法
2011-06-30 19:32 1172$districts = $this->School-& ... -
php 截取中文字符
2011-06-23 17:13 974<?php /* *截取字符串 *bilib ... -
textarea 回车 空格转换
2011-06-20 18:16 1164在处理文本框textarea的时候,str_replace(c ... -
php给编辑器中的图片添加域名
2011-06-12 00:43 3490/** * 替换fckedit中的图片 添加域名 ... -
phpmail发送邮件
2011-05-05 17:28 1272简单的发送邮件:用到wordpress里面的两个类,下载地址h ... -
base64_encode和serialize的实用和区别
2011-05-04 19:16 1073serialize()产生一个可存储的值的表示,返回字符串,此 ... -
zendstudio 常用快捷键
2011-04-21 12:56 1149在开发中用到的IDE为zendstudio,使用快捷键可以提高 ... -
php截取中文乱码问题
2011-03-24 18:32 1098在页面显示链接地址的时候,要控制字数,字母还没问题,当遇到中文 ... -
php中null empty isset判断空
2011-03-19 15:16 1580在平时的条件判断中true 和 false是常用的,判断常用的 ... -
cakephp bake生成
2011-03-18 18:11 1077bake生成是cakephp快速建站的工具 配置环境变量 ... -
cakephp 分页 session
2011-03-16 19:29 2010分页: 在cakephp中很多都是通过components来 ... -
cakephp session学习
2011-03-14 18:39 1368// Revert value and get rid ... -
cakephp cookies的学习
2011-03-14 17:21 3456cakephp的cookie是作为一个插件封装了php的coo ... -
cakephp访问控制
2011-03-14 16:55 12971.cakephp中的访问控制ACL 请求访问对象ARO 访 ... -
cakephp学习中的点滴
2011-03-14 00:45 9531 model层的操作 基类为dbo_mysql.php ca ... -
apache 服务器的一些配置
2011-03-12 03:03 12251,基于主机名的虚拟主机,基于域名的虚拟主机可以多个域名使用同 ...
相关推荐
PHP100视频教程54:Apache.Rewrite.拟静态配置.rar
详细介绍Apache开启伪静态 Rewrite url重写规则
平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等 2.Apache Rewrite的配置 Apache下的Rewrite配置主要有两种,一种是针对整个apache服务器的配置,此种配置的Rewrite规则是直接在httpd.conf下书写。...
Apache 1.x 的用户请检查 conf/httpd.conf 中是否存在如下两段代码: LoadModule rewrite_module libexec/mod_rewrite.so AddModule mod_rewrite.c Apache 2.x 的用户请检查 conf/httpd.conf 中是否存在如下一段...
如何在Apache 服务器下配置URL 静态化的 Rewrite 规则.docx
方法有两种一种是编译apache的时候就直接 安装rewrite模块,别一种是编译apache时以DSO模式安装apache,然后再利用源码和apxs来安装rewrite模块。二、在Apache配置中启用Rewrite打开配置文件httpd.conf: 代码如下:1....
Discuz! X2 配置URL伪静态Rewrite规则,里面详细讲解了apache服务器下 Discuz! X2 配置URL伪静态Rewrite规则和IIS下得Discuz! X2 配置URL伪静态Rewrite规则
54:Apache Rewrite 拟静态配置 55:PHP5中使用PDO连接数据库 56:制作PHP安装程序的原理和步骤 57:PHP备份数据库原理和方法 58:快速设计一个企业网站之BIWEB 59:关于BIWEB常见问题和结构分析 60:PHP与数据库...
Apache伪静态时rewrite匹配参数超过10个的处理方法.docx
很多很想要的Shopex4.8.5伪静态2.0版本而非网上到处流传的3.0版本。 亲测可用。可以在IIS6.0/7.0上完美执行。
PHP100视频教程54:Apache Rewrite 拟静态配置 PHP100视频教程55:PHP5中使用PDO连接数据库 PHP100视频教程56:制作PHP安装程序的原理和步骤 PHP100视频教程57:PHP备份数据库原理和方法 PHP100视频教程58:快速...
一 打开 Apache 的配置文件 httpd.conf 。 二 将#LoadModule rewrite_module modules/mod_rewrite前面的#去掉 三 在 httpd.conf中添加: ...:index|dispbbs))-([-0-9]+)\.html$ $1.php?__is_apache_rewrite=1&__rewrit
URL重写技术在今天已不是什么新鲜的话题了,在Apache服务器提供了名为mod_rewrite的URL重写模块,而在IIS服务器上,也有很多商业的ISAPI 筛选器模块可供使用。然而这对于我们,没有很多的资金或使用的共享服务器,...
REWRITE伪静态 一、Apache配置: 进入/etc/httpd/conf/目录下,打开httpd.conf文件。 启用rewrite # LoadModule rewrite_module modules/mod_rewrite.so 去除前面的 # 启用.htaccess AllowOverride None 修改为: ...
mod_rewrite是Apache的一个非常强大的功能,它可以实现伪静态页面。下面我详细说说它的使用方法!对初学者很有用的哦!
这时apache已经拥有的伪静态功能了,称为内建伪静态。 2、如果安装的时候没有 –enable-rewrite 这个参数,那么:到“LoadModule” 区域,在最后一行加入“LoadModule rewrite_module modules/mod_rewrite.so”...
程序代码 代码如下: # 将 RewriteEngine 模式打开 RewriteEngine On # 修改以下语句中的 /bbs 为你的论坛目录地址,如果程序放在根目录中,请将 /bbs 修改为 / RewriteBase /bbs # Rewrite 系统规则请勿修改 ...
把 [url]... APACHE的 MOD_rewrite模块. 大家可以看一个演示的一个 PHP学习论坛 [url]http://www.phpx.com/happy/[/url] 这个论坛的版面和帖子,就是运用了这个技术,地址静态化.但是是假的. 这个技术哪
Rewirte主要的功能就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则表达式规范。平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等