APache 版本

如果需要整站跳转,则在网站的配置文件的<Directory>标签内,键入以下内容:
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R=301]

如果对某个目录做https强制跳转,则复制以下代码:
RewriteEngine on
RewriteBase /yourfolder
RewriteCond %{SERVER_PORT} !^443$
#RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R]
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]

如果只需要对某个网页进行https跳转,可以使用redirect 301来做跳转!redirect 301 /你的网页 https://你的主机+网页

Nginx版本

在配置80端口的文件里面,写入以下内容即可。
server {
listen 80;
server_name localhost;
rewrite ^(.*)$ https://$host$1 permanent;
}

IIS 版本

IIs中实现Http自动转换到Https方法介绍 (403跳转对SEO有一定影响)
1、根据IIS版本备份以下文件:
IIS6.0 路径:C:\WINDOWS\Help\iisHelp\common\403-4.htm
IIS7.0以上 路径:C:\inetpub\custerr\zh-CN\403.htm

2、把以下内容全部拷贝替换(403-4或403)里面所有内容,保存即可
<HTML><HEAD><TITLE>该页必须通过安全通道查看</TITLE>
<META HTTP-EQUIV=”Content-Type” Content=”text/html; charset=GB2312″>
</HEAD><BODY>
<script type=”text/javascript”>
var url = window.location.href;
if (url.indexOf(“https”) < 0) {
url = url.replace(“http:”, “https:”);
window.location.replace(url);
}
</script>
</BODY></HTML>
注释:IIS6中,站点属性-》目录安全性-》编辑中把“要求安全通道(SSL)”勾选上即可。
IIS7、8中,SSL设置-》把“要求SSL”勾选即可。

TOMCAT 版本

1、在conf目录下的server.xml文件中找到以下配置,修改redirectPort参数值为”443″,默认是“8443”.
<Connector port=”80″ protocol=”HTTP/1.1″ connectionTimeout=”20000″ redirectPort=”443″ />

2、在conf目录下的web.xml文件内容<web-app>……</web-app>中增加以下配置。
<web-app>
………
<security-constraint>
<web-resource-collection >
<web-resource-name >SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
</web-app>
单独页面通用代码段:以下方法较适合指定某一个子页单独https
在需要强制为https的页面上加入以下代码进行处理http–>https
<script type=”text/javascript”>
var url = window.location.href;
if (url.indexOf(“https”) < 0) {
url = url.replace(“http:”, “https:”);
window.location.replace(url);
}
</script>
在需要强制为http的页面上加入以下代码进行处理
https–>http
<script language=”JavaScript” type=”text/JavaScript”>
function redirect()
{
var loc = location.href.split(‘:’);
if(loc[0]==’https’)
{
location.href=’http:’+loc[1];
}
}
onload=redirect
</script>

PHP页面跳转:添加在网站php页面内
if ($_SERVER["HTTPS"] <> “on”)
{
$xredir=”https://”.$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
header(“Location: “.$xredir);
}

 

复习linux的知识,第一篇记录虚拟机的安装以及linux系统 redhat7.2的安装和配置流程。

 

No.1  首先安装VMware Workstation 12 Pro

vmware

安装步骤就不详细说明了,基本上都是点击Next就行了(过程的选项基本就是修改安装目录,是否添加到桌面,是否检查更新这几个了)。最后一步输入许可证后点击完成就成功安装好wmware了。

 

workstation12

 

 

No.2 第二步就是创建新的虚拟机

打开wmware,点击“创建新的虚拟机”

 

选择“自定义(高级)”,点击下一步

 

根据你的版本选择,这里我使用 workstation 12.0,点击下一步,

 

选择稍后安装操作系统,点击下一步

 

选择你的linux版本,这里使用的版本是redhat7.2,点击下一步

 

这安装自己的要求修改名字和安装位置,点击下一步

 

根据你的机器的配置来选择,你的机器配置高的话可以选择多些,点击下一步

 

同样根据你的电脑的内存来选择,你的内存比较多的话,可以分配多点内存,点击下一步

 

网络类型可以选择桥接网络,或者第二个 NAT模式 这里选择第一个,点击下一步

 

下面的几个选项都选择默认的就行了

 

然后到了这一步之后,先不要点击完成,而是点击“自定义硬件”

 

点击新 CD/DVD那一项,然后选择“使用iso映像文件”

 

选择你的linux系统文件, 这里记住是iso文件来的哦,选择完之后点击关闭然后点击完成。

 

No.3 第三步就是安装linux了

这时候可以看到一个新的虚拟机了,点击“开启此虚拟机”

 

 

这时会看到该界面 选择第一个 install red hat enterprise linux 7.2 就可以了。

ps:

—————————————————

界面说明:

Install Red Hat Enterprise Linux 7.2—安装RHEL7.2

Test this media & install Red HatEnterprise Linux 7.2—-测试安装文件并安装RHEL 7.2

Troubleshooting—修复故障

注:在Trobleshooting模式下,界面如下:

界面说明:

Install Red Hat Enterprise Linux 7.1 in basicgraphics mod—基本图形化安装

Rescue a Red Hat Enterprise Linux system—修复系统

Run a memory test—运行内存测试系统

Boot from local drive—本地设备启动

Return to main menu—返回主菜单

———————————————————-

接着按 回车键 开始安装了, 界面会出现下面的情况。

 

接着会出现语音选择界面 这里选择中文->简体中文  就可以了 点击继续。

 

这时候会进入“安装信息摘要”界面,此界面,只需把所有带内容的感叹号全部消除,便可进行安装。

 

日期时间、键盘、和语言都是比较简单的设置,点击进去按照文字说明进行配置就行了。

 

接下来是安装源的设置,点击安装源

点击验证,验证光盘或镜像是否完整,防止安装过程出现软件包不完整

如果验证成功,会出现下面内容,然后点击完成。

 

接下来到“软件选择”设置,初学者建议选择带GUI的服务器,同时把开发工具相关的软件包也安装上,然后单击完成

 

下一步设置“安装位置”

 

在“其他存储选项”那选择“我要配置分区”,然后点击完成。

 

点击完成之后会进入到手动分区界面

在分区方案有标准分区,btrfs,LVM,LVM简单配置,这里默认LVM就可以

点击下面的添加新的挂载点。

 

第一先添加一个boot分区(启动分区),容量500M就可以了,或者可以设大一点都可以,然后点击添加挂载点。

添加完boot分区之后可以看到下面的内容,设备类型选择默认的标准分区,文件系统类型为xfs,RHEL7支持brtfs,生产环境不建议选择,btrfs文件系统目前技术尚未成熟,只是作为一种前瞻技术。

 

第二 添加swap分区(内存扩展分区),容量可以是内存的1.5-2倍

 

第三 创建 / 分区

 

然后点击 后,出现以下的界面,再点击“接受更改”

ps:

——————————————-

boot分区: 是引导分区,作用:系统启动,在boot分区存放着grub,内核文件等,一般200M就够。

swap分区:内存扩展分区   给多大?  一般最多:8G,16G,如果swap不够用,就直接添加物理内存吧。

/   根    : 所有文件的根

sda:表示第一块磁盘, sda1就是sda里面的第一个主分区然后 sda2…..如果有第二块就是sdb ,第三块就是sdc,以此类推。

——————————————–

 

接下来设置“网络和主机名”,点击进去

 

将以太网开启,可以自动获取ip地址,

 

 

也可以手动配置 点击右下角的“配置”按钮,在ipv4的方法中选择“手动” 如下图:

然后点击完成。

 

全部配置完成之后如下,单击开始安装,进行系统安装

 

进入安装界面,需要配置用户密码

 

安装完之后按要求重启一次

 

重启之后进入启动界面

 

首次启动配置,需要许可认证

 

同意许可认证

 

完成配置

 

进入是否进行注册页面(不要注册)

 

登录系统,选择未列出,输入用户名root,和你设置的密码

 

成功登陆系统

 

无论什么系统解决方式基本是一致的,只是进入文件夹的名称略有不同。

产生问题的原因
由于用户更改了管理员身份进入的密码造成的。密码改变后VS的操作环境有变化就无法继续工作。所以在安装其他软件过程中会提示出“该项不适用于在指定状态下使用”,甚至AutoCAD会提示”重叠IO操作进行中”的提示。
解决途径
删除C:\Documents and Settings\%userName%\Application Data\Microsoft\的Crypto
其他系统也是找到类似的文件夹。
第一步:在win7中首先你会不知道如何找到XP等系统中常见的【Documents and Settings】——win7与此对应的就是【用户】或者【users】
001Yyjslgy6LmJTtyvN23&690
第二步:
001Yyjslgy6LmK3NGYq32&690
第三步:
选择administrator中app data
这就是XP等系统中常见的Application Data
001Yyjslgy6LmLBfDZj6d&690
APP DATA在win7中是隐藏的,所以在之前的时候需要在工具-文件夹选项中把所有隐藏文件等显示出来
第五步:
点击进入文件夹,地址如下
C:\Users\Administrator\AppData\Roaming
C:\Users\Administrator\AppData\Roaming\Microsoft
然后找到Crypto目录,全部删掉
不同系统和电脑处理方式略有不同,可以参考以上方式自行处理。
 

网上找了很多方法都没弄好, 最后发觉只要修改好web.config文件就好了

具体方法为:

1.打开网站根目录下的web.config文件。

2.找到文件中的

<httpErrors>
<remove statusCode=”404″ subStatusCode=”-1″ />
<error statusCode=”404″ prefixLanguageFilePath=”” path=”404.htm” responseMode=”ExecuteURL” />
</httpErrors>

3.将这段内容替换成

<httpErrors errorMode=”DetailedLocalOnly” defaultResponseMode=”File” >
<remove statusCode=”404″ />
<error statusCode=”404″ path=”404.html” />
</httpErrors>

 

path=”404.html” 这个是你的自定义404页面, 不同路径要自己修改好, 这个是在根目录的。

操作完成后,重启网站服务即可生效!

 

Apache中 RewriteCond语句对于我来说一直是个难点,多次试图去把它搞明白,都没有结构,这次我终于算大概知道它的意思了。
RewriteCond就像我们程序中的if语句一样,表示如果符合某个或某几个条件则执行RewriteCond下面紧邻的RewriteRule语句,这就是RewriteCond最原始、基础的功能,为了方便理解,下面来看看几个例子。

1 RewriteEngine on
2 RewriteCond  %{HTTP_USER_AGENT}  ^Mozilla\/5\.0.*
3 RewriteRule  index.php            index.m.php
4
5 RewriteCond  %{HTTP_USER_AGENT}  ^Lynx.*
6 RewriteRule  index.php            index.L.php
7
8 RewriteRule  index.php            index.b.php
上 面语句的作用是当你是用FF浏览器访问index.php这个文件的时候,会自动让你访问到index.m.php这个文件,当你是用一些移动终端访问的 时候,会让你对index.php这个文件的访问实际访问的是index.L.php去,如果你是用其它的浏览器访问的时候,会让你跳到 index.b.php。在说形象一点,上面的语句就等同于程序里面的下面语句(依PHP语句为例):
if($_SERVER['HTTP_USER_AGENT'] == 'Mozilla/5.0')
02 {
03 //跳转到对index.m.php的访问
04 }
05 else if($_SERVER['HTTP_USER_AGENT'] == 'Lynx')
06 {
07 //跳转到对index.L.php的访问
08 }
09 else
10 //跳转到对index.b.php的访问
再看例2:
1 RewriteCond %{HTTP_REFERER} (www.test.cn)
2 RewriteRule (.*)$ test.php
上面语句的作用是如果你访问的上一个页面的主机地址是www.test.cn,则无论你当前访问的是哪个页面,都会跳转到对test.php的访问。

再看例三:

1 RewriteCond %{REMOTE_HOST} ^host1.* [OR]
2 RewriteCond %{REMOTE_HOST} ^host2.* [OR]
3 RewriteCond %{REMOTE_HOST} ^host3.*
4 RewriteRule (.*)$ test.php

上面语句的作用是如果你的地址是host1或host2或host3的时候,则就跳到对test.php。从这里可以看出,RewriteCond语句之间默认的是AND,如果想要OR,则要明确的写出来。

下面是自己收藏的一些有用的重写规则:

1 RewriteCond %{REQUEST_FILENAME} !-f   //如果文件存在,就直接访问文件,不进行下面的RewriteRule.(不是文件或文件不存在就执行重写)
2
3 RewriteCond %{REQUEST_FILENAME} !-d   //#如果目录存在就直接访问目录不进行RewriteRule
4
5 RewriteCond %{REQUEST_URI} !^.*(\.css|\.js|\.gif|\.png|\.jpg|\.jpeg)$ //#如果是这些后缀的文件,就直接访问文件,不进行Rewrite
本文摘自: http://hi.baidu.com/%D2%BB%CE%C4%CC%EC/blog/item/ace7f14e19851cc4d0c86af2.html
 

有时候为了服务器的安全,要求拒绝来自某个IP的访问

如果我不想某个用户访问到我的站点的内容,那可以通过.htaccess中加入该用户的IP而将它们拒绝在外。

例如:
order allow,deny
deny from 192.168.115.2
deny from 192.168.115.
allow from all

第二行拒绝某个IP,第三行拒绝某个IP段,也就是192.168.115.0~192.168.115.255。想要拒绝所有人?用deny from all好了。不止用IP,也可以用域名来设定。

 

有些时候,你需要以IP地址的方式阻止一些访问。无论是对于一个IP地址还是一个网段,这都是一件非常简单的事情,如下所示:

allow from all
deny from 145.186.14.122
deny from 124.15

Apache对于被拒绝的IP会返回403错误。

 

apache 绑定域名方法,用作记录以防以后用到

D:\wwwroot\Apache-22\conf\extra\httpd-vhosts.conf

<VirtualHost *>
<Directory “D:/wwwroot/htdocs/askzjgbk”>
Options -Indexes FollowSymLinks
Allow from all
AllowOverride All
</Directory>
ServerAdmin admin@www.aiwebcom.com
DocumentRoot “D:/wwwroot/htdocs/askzjgbk”
ServerName www.aiwebcom.com:80
ServerAlias askzj.com
CustomLog “|bin/rotatelogs.exe -l D:/wwwroot/htdocs/askzjgbk/logs/home_%Y-%m-%d.log 86400″ combined
php_admin_value open_basedir “D:\wwwroot\htdocs\askzjgbk;C:\WINDOWS\Temp;”
</VirtualHost>

 

以前也没怎么关注301重定向,第一因为没有网站要重定向,第二对于不带www的域名我都是用的转发到带www的域名。不过一场风波之后,很多服务商已经不提供转发服务了,虽说易名现在还可以享用到免费的转发服务,但是却不能不带www的转发到带www的同时进行MX记录解析,这对于需要MX解析的朋友也是一大烦恼。  而且有些域名在国外,转发更是用不了,也只能进行301永久重定向了,不然搜索引擎是把不带www的站和带www的站分开对待的,只是我们习惯于用带www的域名罢了。

在网络上看了些教程,再根据自己的实践,也终于搞定了IIS服务器上的301永久重定向设置问题。实现方法如下:

1.新建一个站点,对应目录如E:\wwwroot\301web。该目录下只需要1个文件,即index.html或者加个404.htm。绑定要跳转的域名,如图:

 

2.在IIS中选中刚才我们建立的站点,右键,属性,主目录,选择重定向到,输入网址如:http://www.xxxx.com,同时注意选中下面的资源的永久重定向选项。如下图:

 

3.到此,我们已经完成了将xxxx.com这个域名301重定向到www.xxxx.com的工作。

注意问题:

“上面输入准确的 URL(X)”这个选项建议不要选。

不选的结果是:

当输入xxxx.com转到了www.xxxx.com,

当输入xxxx.com/sanwen/suibi/时,转到了www.xxxx.com/sanwen/suibi/。

选上的结果是:

当你输入xxxx.com或者xxxx.com/sanwen/suibi/都会转到www.xxxx.com。

好了,如果只是想把不带www的转到带www的或者其他没有用过的域名转到正在使用的域名,这样就可以了。但是如果你要的域名已经做过网站,想要把权重传递给新网站,可以参考下面这个方法:

第一步同上,主要是第二步,如图:

 

注意红色字体的部分,在重定向到地址的后面多了$S$Q字符,即写成了http://www.xxxx.com$S$Q。“上面输入准确的 URL(X)”这个选项也打了勾。

对于$S$Q字符,这里解释一下:

$S 将请求的URL 的后缀传递给新的URL。后缀是用重定向的URL 代替之后,初始URL 中所保留的部分。

如果未设置 EXACT_DESTINATION 标志,则结果目标URL 的名称将具有所请求文件的名称(作为文件夹名称)以及文件名本身。

$Q 将初始URL 中的参数(如 querystring 参数)传递至新的 URL,包括问号(?)。

如果不加上$S$Q字符的话,内页的301都会跳转到首页,加上$S$Q字符的目的就是内页也能准确的跳转到新域名的对应内页。

好了,这样就完成了301永久重定向的设置,设置好之后最好能测试下是否返回的是301值,推荐个网址:http://www.seoconsultants.com/tools/headers。

百度对301的反应并不像想象中那么慢,第二天就收录了xxxx.com这个页面,快照最新。当然,快照的内容是www.xxxx.com的内容,而不是301web里index.html的内容。

© 2012 Ai-WEB的博客 Suffusion theme by Sayontan Sinha