标签: apache

htaccess功能简明教程

文章代码中的问号和引号可能转义,请自行修改。
.htaccess文件很有用,简单说说吧(可是淡水还是厚颜的加上了简明教程的标题)。

重定向和url重写

一个简单的重定向

Redirect 301 ^old\.html$ http://localhost/new.html
这是设置一个http状态码为301(永久移动)并把所有访问old.html转向到new.html。使用了正则表达式来匹配访问的页面,后面的url必须是完整路径。

Url重写

RewriteEngine on
RewriteRule ^old\.html$ new.html
第一行打开重写引擎
第二行是重写规则。这样用户访问old.html时实际却是访问的new.html,而且用户对此好吧知情。因为地址栏里依旧显示是old.html。

为了在地址栏显示新的访问地址,我们可以加个f标志在rewriterule语句里。

RewriteRule ^old\.html$ http://hostname/new.html [r=301]
下面是把带查询参数的url重写成对搜索引擎友好的url

RewriteRule ^products/([^/]+)/([^/]+)/([^/]+) product.php?cat=$1&brand=$2&prod=$3
这条规则允许访问者以类似这样的url products/turntables/technics/sl1210, 来访问product.php?cat=turntables&brand=technics&prod=sl1210.

括号里为一个单元,分别对应后面的$1,$2,$3。[^/]+ 在原括号里表示除了/之外的任何一个或是多个字符。

自定义错误页面

ErrorDocument 404″/404.html”
这是定义404页面无法找到的错误,也可以定义其他错误代码的页面。

限定访问特点资源


AuthName”Username and password required”
AuthUserFile/path/to/.htpasswd
Require valid-user
AuthType Basic

保护protectedfile.html,authName是登陆框的提示信息,authuserfile是.htpasswd文件的路径

阻止某些ip访问

order allow,deny
deny from 192.168.0.1
allow from all
Order告诉apache指令的顺序。这里的这个是先允许后拒绝的。虽然allow from all后出现但是还是在前面生效。拒绝了192.168.0.1的访问。也可以按段来屏蔽访问的,只要只指定前面的几段就可以类似,192.168.

实现缓存

ExpiresActive on
ExpiresByType image/gif “access plus 1 month”
ExpiresByType image/png “access plus 1 month”
ExpiresByType image/jpg “access plus 1 month”
ExpiresByType image/jpeg “access plus 1 month”
第一行开启,下面分别控制各种资源都加上一个月的缓存期。这个功能依赖apache的mod_expires 模块。

还可以实现压缩,以减少流量。这里就不多谈了。结束了,果然很简明吧。

By 淡水河边 in PHP, Work

解决评论回复乱码问题

好吧,我承认在这段时间里比较懒散,连个回复乱码的问题都没有解决。今天就一起搞定了。结论是apache的设置,需要找到apache的httpd.conf,修改默认编码的设置,如下:
首先用SSH登陆VPS,修改httpd.conf文件
cd /etc/httpd/conf/
vi httpd.conf
查找:AddDefaultCharset
把:AddDefaultCharset GBK
改为:AddDefaultCharset UTF8 或 AddDefaultCharset OFF
重启Apache:service httpd restart
原来就这么简单……

linux删除apache、mysql、php的方法

安装面板之前,我们需要做很多工作,为的就是创造一个干净的系统。

首先需要判断,以php为例。
执行rpm -q php,如果返回php版本,刚是rpm安装;不返回php版本则是二进制安装。
对于rpm安装执行rpm -e php –nodeps 即可彻底系统自带的php;对于二进制安装直接目录就可以。
apache、mysql用同样的方法即可删除。

安装方法

只安装一个软件时
-y install httpd

安装多个相类似的软件时
yum -y install httpd*

安装多个非类似软件时
yum -y install httpd php php-gd mysql

只卸载一个软件时
yum -y remove httpd
卸载多个相类似的软件时
yum -y remove httpd*
卸载多个非类似软件时
yum -y remove httpd php php-gd mysql

另外还有一个非常实用的用法
假如我要执行iostat这个命令来查看CPU与存储设备状态,可是执行却发现没有这个命令
于是执行yum install iostat,结果说找不到该软件,使用下面的办法可以解决
yum search iostat就能查到和iostat相关的安装包了,
另外想安装一个程序,只记得一部分名称,也可以用这个办法来实现安装
yum search png |grep png
就能找到我们想安装的libpng这个名称

最后,最好在运行linux面板安装之前运行一下下面的命令。
yum -y remove httpd
yum -y install file
yum -y install patch
yum -y update

通过伪静态规则实现子目录绑定

通过伪静态规则实现子目录绑定:apache+.htaccess或IIS+ISAPI_REWRITE+httpd.ini

Apache HTTP Server一般安装在类Linux服务器上,默认支持URL重写,一般虚拟主机用户将.htaccess文件放网站根目录就可以实现伪静态了,使用下面的伪静态规则就可以实现子目录绑定。

RewriteEngine on
# 把 ip.caoger.net 改为你要绑定的域名,把 IPdir 改为要绑定的目录
RewriteCond %{HTTP_HOST} ^(www.)?ip.caoger.net$
RewriteCond %{REQUEST_URI} !^/IPdir/ 阅读详细 »