apache重写规则为什么要options +followsymlinks

前几天在一个站点下防止.htaccess配置文件,后发现所有文件都提示403错误了,查了下资料应该跟options +followsymlinks有关系。

解决方法是在.htaccess文件头部添加: Options +FollowSymlinks

发表在 服务器相关 | apache重写规则为什么要options +followsymlinks已关闭评论

IIS 站点web.config把错误都指向友好页面 隐藏错误信息

只需要在web.config配置文件中增加customErrors属性即可,error.htm就是你要显示的友好页面

  <system.web>
	<customErrors mode="On" defaultRedirect="error.htm"/>
  </system.web>

发表在 网站技术 | IIS 站点web.config把错误都指向友好页面 隐藏错误信息已关闭评论

让discuz同时支持http及https访问

discuz中的变量$_G[‘siteurl’]设置了站点路径,为了兼容http及https同时访问,可以修改

source/class/discuz/discuz_application.php 文件

原始代码:$_G['isHTTPS'] = ($_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;  
替换为:$_G['isHTTPS'] = ($_SERVER['SERVER_PORT'] == 443 || $_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;

即可解决
发表在 网站技术 | 让discuz同时支持http及https访问已关闭评论

iis屏蔽特定ua访问某个目录(例如屏蔽某个搜索引擎抓取某个目录)

最近某个搜索引擎对网站一个目录的抓取特别频繁,而这个目录是动态页面,比较耗资源,于是测试了下rewrite,写了个规则,测试可以屏蔽,规则如下:

    <rewrite>
        <rules>
            <rule name="屏蔽规则" stopProcessing="true">
                <match url="^(.*)$" ignoreCase="false" />
                <conditions logicalGrouping="MatchAll">
                    <add input="{HTTP_USER_AGENT}" pattern="(^$|xxxSpider)" />
                    <add input="{URL}" pattern="^.*/abc/.*" />
                </conditions>
                <action type="CustomResponse" statusCode="403" statusReason="Forbidden" statusDescription="Forbidden" />
            </rule>
        </rules>
    </rewrite>
上边的xxxSpider就是你要屏蔽的ua,如果是多个可以用|分割,下边的/abc/就是你要屏蔽的目录,这下可以高枕无忧了。
发表在 服务器相关 | iis屏蔽特定ua访问某个目录(例如屏蔽某个搜索引擎抓取某个目录)已关闭评论

COMMODO 颁发的 SSL 证书后,Android/iOS 下的浏览器访问站点时提示:该证书并非来自可信的授权中心

原因
Android/iOS 自带的 SSL 证书可能漏了证书链里面的某一个证书(中间证书),只要在最终使用的 *.crt 证书文件里面把证书链补充完整就可以解决问题

解决方法
COMODO 申请证书成功之后,下载到的 *.zip 压缩包里面有好几个文件:

AddTrustExternalCARoot.crt
COMODORSAAddTrustCA.crt
COMODORSADomainValidationSecureServerCA.crt
www_yourdomain_com.crt
注:这是证书链的顺序,其中 AddTrustExternalCARoot.crt 是根证书(ROOT CA Certificate)文件,COMODORSAAddTrustCA.crt 和 COMODORSADomainValidationSecureServerCA.crt 是中间证书(Intermediate CA Certificate)文件,www_yourdomain_com.crt 是站点 SSL 证书文件

只要按照如下顺序把这些文件的内容拼接在一起组成一个新的 *.crt 证书文件再使用就可以了:

www_yourdomain_com.crt
COMODORSADomainValidationSecureServerCA.crt
COMODORSAAddTrustCA.crt
AddTrustExternalCARoot.crt
注:就是按照和证书链刚好相反的顺序拼在一起,最终得到的证书内容大致如下:

—–BEGIN CERTIFICATE—–

—–END CERTIFICATE—–
—–BEGIN CERTIFICATE—–

—–END CERTIFICATE—–
—–BEGIN CERTIFICATE—–

—–END CERTIFICATE—–
—–BEGIN CERTIFICATE—–

—–END CERTIFICATE—–
保存为新文件 new_name.crt 再使用就可以解决

发表在 服务器相关 | 标签为 | COMMODO 颁发的 SSL 证书后,Android/iOS 下的浏览器访问站点时提示:该证书并非来自可信的授权中心已关闭评论

Hyper-V虚拟机端口映射,实现从外网远程访问内网虚拟机

下面是hyper-v共享IP端口映射一些常用命令
共享IP端口映射一些常用命令
一、查询端口映射情况
netsh interface portproxy show v4tov4
查询这个IP所有的端口映射。
netsh interface portproxy show v4tov4|find “192.168.1.1”
二、增加一个端口映射
netsh interface portproxy add v4tov4 listenport=外网端口 listenaddress=主IP connectaddress=私网IP connectport=私网IP端口
例如:
netsh interface portproxy add v4tov4 listenport=8888 listenaddress=192.168.1.55 connectaddress=192.168.8.10 connectport=3389
三、删除一个端口映射
netsh interface portproxy delete v4tov4 listenaddress=主IP listenport=外网端口

Hyper-V虚拟机端口映射,实现从外网远程访问内网虚拟机,只需要用管理员身份运行powershell执行映射命令即可。(别忘了打开防火墙相应端口哦)

发表在 服务器相关 | 标签为 | Hyper-V虚拟机端口映射,实现从外网远程访问内网虚拟机已关闭评论

解决wordpress启用https后台打不开,css路径错误的问题

wordpress后台设置吧http改成https地址后,发现后台无法访问了,前台css也加载不全,解决方法如下:

打开wp-config.php这个文件中,添加如下代码:

$_SERVER[‘HTTPS’] = ‘on’;
define(‘FORCE_SSL_LOGIN’, true);
define(‘FORCE_SSL_ADMIN’, true);

发表在 网站技术 | 标签为 | 一条评论

PHP脚本监控Nginx 502错误并自动重启php-fpm

nginx+php-fpm有时候会提示Nginx 502 Bad Gateway,并且不会自动恢复
不过可以写个脚本检测服务状态,发现异常,自动重启。
自动重启脚本:

<?php
$url = ‘http://www.duzhi.net’;
$cmd = ‘/etc/init.d/php-fpm restart’;

for($i = 0; $i < 5; $i ++){
$exec = “curl connect-timeout 3 -I $url 2>/dev/null”;
$res = shell_exec($exec);

if(stripos($res, ‘502 Bad Gateway’) !== false){
shell_exec($cmd);
exit();
}
}
?>

把以上代码保存成nginx502.php,然后添加定时任务,每分钟执行一次。
定时任务代码如下
*/1 * * * * /usr/bin/php /root/crontab/nginx502.php

小插曲:如果执行后php报错:Warning: shell_exec() has been disabled for security reasons in ……
说明你的php不支持shell_exec(),只需要修改php.ini打开这个功能即可。

发表在 Linux相关 | 标签为 | PHP脚本监控Nginx 502错误并自动重启php-fpm已关闭评论

linux系统下文件都成只读状态了 系统提示:Read-only filesystem 任何文件都修改不了的解决办法

一个朋友说他服务器无法ping任何域名了,外网是好的,也能ping通,具体什么问题呢

看了下没设置dns,于是编辑了/etc/resolv.conf

系统提示:chmod: changing permissions of ‘/etc/resolv.conf’: Read-only file system

看了下他/分区所有文件都是只读状态,于是:

mount -o remount -rw  /

问题解决了

 

参考资料:重新挂载为已经挂载了的文件系统(以读写权限挂载),需要注意的是,挂载点必须是一个已经存在的目录,这个目录可以不为空。一般用于此目录下的文件为ro权限,需要临时变更为可修改权限。

参数:

-o <选项> 指定挂载文件系统时的选项,有些也可写到在 /etc/fstab 中。常用的有:
defaults 使用所有选项的默认值(auto、nouser、rw、suid)
auto/noauto 允许/不允许以 –a选项进行安装
dev/nodev 对/不对文件系统上的特殊设备进行解释
exec/noexec 允许/不允许执行二进制代码
suid/nosuid 确认/不确认suid和sgid位
user/nouser 允许/不允许一般用户挂载
codepage=XXX 代码页
iocharset=XXX 字符集
ro 以只读方式挂载
rw 以读写方式挂载
remount 重新安装已经安装了的文件系统

发表在 Linux相关 | 标签为 | linux系统下文件都成只读状态了 系统提示:Read-only filesystem 任何文件都修改不了的解决办法已关闭评论

IIS站点全站http跳转https后,排除指定类型文件跳转https的办法

IIS站点网站已经全站http跳转https了,但业务上有些后缀文件还需要http访问的办法

由于rewrite规则是从前到后执行的,思路就是在跳转https之前加一条规则终止执行任何规则即可。具体代码如下(红色部分)

<rewrite>
<rules>
<rule name=”ignore xml” stopProcessing=”true”>
      <match url=”(.*.xml)” />
      <action type=”None” />
</rule>
<rule name=”HTTP to HTTPS redirect” patternSyntax=”ECMAScript” stopProcessing=”true”>
<match url=”(.*)” negate=”false” />
<conditions>
<add input=”{HTTPS}” pattern=”^OFF$” />
</conditions>
<action type=”Redirect” url=”https://{HTTP_HOST}/{R:1}” redirectType=”Permanent” />
</rule>
</rules>
</rewrite>

测试完美解决了业务上的需求

 

发表在 服务器相关 | 标签为 | IIS站点全站http跳转https后,排除指定类型文件跳转https的办法已关闭评论