修改.htaccess实现301重定向的几种例子

1.重定向sjolzy.cn到 www.sjolzy.cn

这种重定向旨在使域名唯一,是网站SEO必须要做的,后面重定向www.sjolzy.cn到 sjolzy.cn也是出于同样的原因,只是形式不同。
打开.htaccess文件,加入以下规则。(下面的规则是针对主域名的,子域名要修改)

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.sjolzy.cn$ [NC]
RewriteRule ^(.*)$ http://www.sjolzy.cn/$1 [L,R=301]

2. 重定向www.sjolzy.cn到sjolzy.cn

RewriteEngine On
RewriteCond %{HTTP_HOST} !^sjolzy.cn$ [NC]
RewriteRule ^(.*)$ //sjolzy.cn/$1 [L,R=301]

3.重定向oldsjolzy.cn到www.newsjolzy.cn

RewriteEngine On
RewriteCond %{HTTP_HOST} !oldsjolzy.cn$ [NC]
RewriteRule ^(.*)$ http://www.newsjolzy.cn/$1 [L,R=301]

4.重定向 oldsjolzy.cn to newsjolzy.cn

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !oldsjolzy.cn$ [NC]
RewriteRule ^(.*)$ http://newsjolzy.cn/$1 [L,R=301]

5.重定向sjolzy.cn/file/file.php 到 othersjolzy.cn/otherfile/other.php

RewriteCond %{HTTP_HOST} ^www.sjolzy.cn$
RewriteRule ^file/file.php$ http://www.othersjolzy.cn/otherfile/other.php [R=301,L]

网站sjolzy.cn的几个短url

首先给自己扫盲。

1.什么是短网址服务

短网址(Short URL)服务,顾名思义,就是把一个原来比较长的网址缩短成一个比较短的网址。

2.为什么需要短网址报务

最容易想到的理由就是好记。但其实还有更具刚性的需求,有些情况下太长的网址给发布者造成困难,比如分享一个资源地址等等

3.应用短网址

使用短网址很简单:打开提供短url服务网站的页面,输入原来的目标网址,提交后得到短网址,此短网址即可代替原长网址使用。

例如我的域名sjolzy.cn生成短url就有下面三个

http://is.gd/eIlSt

http://bit.ly/bZ88Dd

http://cli.gs/qee4TU

就试了三个,不够... 短url短url还是没哥自己的域名短.... 

呵呵,纯属娱乐爽一下

apache多域名多ip多端口的配置

之前就有一篇:apache同一ip设置多端口访问

#由于是多 ip 监听同一个端口所以这样写
Listen 80

#若是多ip 多端口 则是
#Listen 192.170.2.1:80
#Listen 192.170.2.5:8000

#由于使用多ip NameVirtualHost这样设置
NameVirtualHost 1.2.3.4:80
NameVirtualHost 5.6.7.8:80

#第一个ip给域名www.sjolzy.cn

 DocumentRoot /www/sjolzy.cn/
ServerName www.sjolzy.cn
ServerAlias sjolzy.cn

#第二个ip给域名www.sjolzy.com

DocumentRoot /www/sjolzy.com
ServerName www.sjolzy.com
ServerAlias sjolzy.com

另外还有一篇:window下设置apache虚拟主机

jquery url检测遇到的jquery跨域问题及JSONP的使用

jsonp的ibm上的资料:

使用 JSONP 实现跨域通信,第 1 部分: 结 合 JSONP 和 jQuery 快速构建强大的

 

跨域限制的原因

 跨域问题存在实际上源于浏览器的同源策略(same origin policy),简单讲,同源就是要求域名,协议,端口三者都一致;而同源策略就是指页面上的脚本不能访问非同源的资源(包括HTTP响应和Cookie);

    很多人会想到一个很熟悉的东西:document.domain

    同 源策略有点放松的就是:b.a.com上的页面无法通过a.com的同源验证,但是设置b.a.com页面的document.domain 属性为a.com,就可以通过浏览器对a.com的同源检测;但是,document.domain只允许设置成更上级的域名,而不是 其它域名,例如c.com就不行; 提到这里很多人都会想到多级域 名下共享Cookie的路子就是把Cooki设置成上级域名;在Web2.0的时代,这种本质上同域跨级解决方案远远不能满足我们跨域的需求;

 

JQUERY的解决办法

浏览器会进行同源检查,这导致了跨域 问题,然而这个跨域检查还有一个例外那就是HTML的<Script>标记;我们经常使用<Script>的src属性,脚本静 态资源放在独立域名下或者来自其它站点的时候这里是一个url;这个url响应的结果可以有很多种,比 如JSON,返回的Json值成为<Script>标签的src属性值.这种属性值变化并不会引起页面的影响.按照惯例,浏览器在URL的查询字符串中提 供一个参数,这个参数将作为结果的前缀一起返回到浏览器;

 

<script type="text/javascript" src="http://domain2.com/getjson?jsonp=parseResponse"> </script> 响应值:parseResponse({"Name": "Cheeso", "Rank": 7}) 注意这里的响应值parseResponse({"Name": "Cheeso", "Rank": 7}),JSONP中URL传入的参数实际上是个回调函数,网站返回的也不是纯JSON数据,如果只有数据,返回后浏览器不会有任何动作。

撇开JQuery,如果自己写JSONP调用,<script src="http://domain2.com/getjson?callback=load"></script>,这时候服返回的数据是类似 load({jsonp数据});(也就是说返回的那个调用函数随着你传入的 callback 而改变。) 这样的javascript代码,调用页面上的load函数,同时把数据传进去。

PHP使用P3P完成COOKIE跨域操作

P3P可以完成跨域 COOKIE操作
实际工作中,类似这样的要求很多,比如说,我们有两个域名,我们想实现在一个域名登录后,能自动完成另一个域名的登录,也就是PASSPORT的功能。
为了测试的方便,先编辑hosts文件,加入测试域名(C:\WINDOWS\system32\drivers\etc\hosts)
127.0.0.1       www.a.com
127.0.0.1       www.b.com
首先:创建 a_setcookie.php 文件,内容如下:

  1. <?php  
  2. //header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');  
  3.   
  4. setcookie("test", $_GET['id'], time()+3600, "/", ".a.com");  
  5. ?>  


然后:创建 a_getcookie.php 文件,内容如下:

  1. <?php  
  2. var_dump($_COOKIE);  
  3. ?>  


最后:创建 b_setcookie.php 文件,内容如下:

  1. <script src="http://www.a.com/a_setcookie.php?id=www.b.com"></script>  


三个文件创建完毕后,我们通过浏览器依次访问:

http://www.b.com/b_setcookie.php
http://www.a.com/a_getcookie.php

我们会发现,在访问b.com域的时候,我们并没有在a.com域设置上cookie值。

然后我们修改一下a_setcookie.php文件,去掉注释符号,a_setcookie.php即为:

  1. <?php  
  2. header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');  
  3.   
  4. setcookie("test", $_GET['id'], time()+3600, "/", ".a.com");  
  5. ?>  


再次通过浏览器依次访问:

http://www.b.com/b_setcookie.php
http://www.a.com/a_getcookie.php

window下设置apache虚拟主机

apache设置个虚拟主机使域名可行有两种办法:1.个IP解析到不同虚拟主机 2.单个IP绑定域名分解到不同虚拟主机

我们一般都是第2种,域名绑定同一IP。

首先,修改hosts文件域名访问方式。添加域名指向

不同的windows版本位置不同,

Windows 3.1/95/98/ME:
c:\windows\hosts

Windows NT/2000/XP Pro:
c:\winnt\system32\drivers\etc\hosts or c:\windows\system32\drivers\etc\hosts

Windows XP Home:
c:\windows\system32\drivers\etc\hosts

Windows Vista:
C:\Windows\System32\Drivers\etc\hosts

打开hosts文件,一般已有 ‘127.0.0.1       localhost’ ,添加你要增加的域名,如 ‘127.0.0.1 sjolzy ’,左边是ip,右边是域名。这样子,在本地访问//sjolzy/ (不存在的域名) 就如同http://localhost 指向设定的网站目录

接着,在apache配置文件上,创建相对应的虚拟主机

打开 httpd.conf文件,添加如下


<VirtualHost *:80>
DocumentRoot "D:/www/sjolzy"
ServerName sjolzy
</VirtualHost>

这样子在浏览器直接输入//sjolzy 就能转到相应的虚拟主机上。

 

或者参考以下:

实现Apache虚拟主机方法一:
开启虚拟主机配置文件

httpd.conf进行设置

1.注释以下三行

#ServerAdmin
#ServerName
#DocumentRoot

2.去掉mod_proxy.so和mod_proxy_ajp.so的注释

3.#Virtual hosts

#Include conf/extra/httpd-vhosts.conf查找这行,把前面的#去掉)
/conf/extra/httpd-vhosts.conf

4.打开 /conf/extra/httpd-vhosts.conf

#192.168.1.24为本地Ip
NameVirtualHost 192.168.1.24:80 


# php项目

<VirtualHost 192.168.1.24:80>

<Directory "D:/phproot/phpmyadmin">

DirectoryIndex index.php

</Directory>

ServerAdmin baibiao @gmail.com

ServerName email.sinoepiboly.com

#ServerAlias email.sinoepiboly.com

DocumentRoot D:/phproot/phpmyadmin

</VirtualHost>

==================================================================

方法二:

二级域名主机开发环境设置说明
第一步 DNS解析实现

找到本机的host文件,一般在 C:\WINNT\system32\drivers\etc,在文件结尾添加:

127.0.0.1 localhost
127.0.0.1 www.com.cn
127.0.0.1 home.com.cn
127.0.0.1 mail.com.cn
127.0.0.1 music.com.cn
127.0.0.1 browseusers.com.cn
127.0.0.1 search.com.cn
127.0.0.1 invite.com.cn
127.0.0.1 rank.com.cn
127.0.0.1 blog.com.cn
127.0.0.1 favorites.com.cn
127.0.0.1 forum.com.cn
127.0.0.1 groups.com.cn
127.0.0.1 events.com.cn
127.0.0.1 classifieds.com.cn
127.0.0.1 signup.com.cn
192.168.6.153 i.com.cn
192.168.6.153 x.com.cn

其中
192.168.6.2 i.com.cn
192.168.6.2 x.com.cn
技术人员不作修改,是美工页面专用的

第二步:apache设置

打开httpd.conf,以music.com.cn为例,其他栏目似添加,在文件最后加入:

1. 保证
Listen 80

2. 打开注释
NameVirtualHost *:80

3. 在末尾添加
<VirtualHost *:80>
ServerAdmin x_cn@msn.com
DocumentRoot "C:/Program Files/Apache Group/Apache2/htdocs/espace/music"
ServerName music.com.cn
</VirtualHost>
<VirtualHost *:80>
ServerAdmin x_cn@msn.com
DocumentRoot "C:/Program Files/Apache Group/Apache2/htdocs/espace/blog"
ServerName blog.com.cn
</VirtualHost>

...

重启即可,Apache虚拟主机设置完成。