Apache rewrite规则 不指定

Category : Apache | Post on 2008/08/25 12:35 by 特蓝克斯 | Comments:0
1、Rewrite规则简介:
Rewirte主要的功能就是实现URL的跳转,它的正则表达式是基于Perl语言。可基于服务器级的(httpd.conf)和目录级的 (.htaccess)两种方式。如果要想用到rewrite模块,必须先安装或加载rewrite模块。方法有两种一种是编译apache的时候就直接安装rewrite模块,别一种是编译apache时以DSO模式安装apache,然后再利用源码和apxs来安装rewrite模块。
基于服务器级的(httpd.conf)有两种方法,一种是在httpd.conf的全局下直接利用RewriteEngine on来打开rewrite功能;另一种是在局部里利用RewriteEngine on来打开rewrite功能,下面将会举例说明,需要注意的是,必须在每个virtualhost里用RewriteEngine on来打开rewrite功能。否则virtualhost里没有RewriteEngine on它里面的规则也不会生效。
基于目录级的(.htaccess),要注意一点那就是必须打开此目录的FollowSymLinks属性且在.htaccess里要声明RewriteEngine on。

2、举例说明:
下面是在一个虚拟主机里定义的规则。功能是把client请求的主机前缀不是www.colorme.com和203.81.23.202都跳转到主机前缀为http://www.colorme.com.cn,避免当用户在地址栏写入http://colorme.com.cn时不能以会员方式登录网站。
NameVirtualHost 192.168.100.8:80
<VirtualHost 192.168.100.8:80>
ServerAdmin webmaster@colorme.com.cn
DocumentRoot "/web/webapp"
ServerName www.colorme.com.cn
ServerName colorme.com.cn
RewriteEngine on #打开rewirte功能
RewriteCond %{HTTP_HOST} !^www.colorme.com.cn [NC] #声明Client请求的主机中前缀不是www.colorme.com.cn,[NC]的意思是忽略大小写
RewriteCond %{HTTP_HOST} !^203.81.23.202 [NC] #声明Client请求的主机中前缀不是203.81.23.202,[NC]的意思是忽略大小写
RewriteCond %{HTTP_HOST} !^$ #声明Client请求的主机中前缀不为空,[NC]的意思是忽略大小写
RewriteRule ^/(.*) http://www.colorme.com.cn/ [L] #含义是如果Client请求的主机中的前缀符合上述条件,则直接进行跳转到http://www.colorme.com.cn/, [L]意味着立即停止重写操作,并不再应用其他重写规则。这里的.*是指匹配所有URL中不包含换行字符,()括号的功能是把所有的字符做一个标记,以便于后面的应用.就是引用前面里的(.*)字符。
</VirtualHost>

.htaccess使用指南 不指定

Category : Apache | Post on 2008/07/16 14:31 by 特蓝克斯 | Comments:0
Apache服务器的.htaccess是一个非常强大的分布式配置文件,学会使用.htaccess,对虚拟主机用户来说,可以实现众多的功能。这里有一篇很容易理解的.htaccess介绍,作为入门文章非常的适合。文章最初来自freewebmasterhelp.com,QiRan作了简单的中文翻译,我将加以完善。

Part 1 – 介绍
Part 2 - .htaccess命令
Part 3 - 密码保护
Part 1 - 介绍
介绍

从本指南中,你将可以学习到有关.htaccess文件及其功能的知识,并用以优化你的网站。尽管.htaccess只是一个文件,但它可以更改服 务器的设置,允许你做许多不同的事情,最流行的功能是您可以创建自定义的“404 error”页面。.htaccess并不难于使用,归根结底,它只是在一个text文档中添加几条简单的指令而已。
在WIN下安装APACHE配置虚拟目录和UNIN/LINUX下基本是一样的,只是目录不同罢啦,这点大家都应该很清楚了,偶就不多说了

今天上午配置了一下一个ip绑定多个域名多站点的配置,刚开始时配置属实头疼,不过大家看过下面我写的总结后,估计应该会找到一些出路,当然了,首先你要对APACHE有一定的了解,这里不多做解释。

就是修改httpd.conf

1:单个IP对应单个域名

这个很简单,其实不用做任何修改,默认域名绑定DNS后,对应的80端口的站就是,不过还是需要配置一下,希望各位熟悉一下。

例如: www.54php.com 对应IP为 192.168.1.1

在httpd.conf中加入如下指令

#对应域名所指向的IP

DocumentRoot "D:/web/54php" #www.54php.com 要指向的目录,注意一定要有 ""
ServerName www.54php.com #所要绑的域名

<VirtualHost *:80>
    ServerAdmin 54php@54php.com
    DocumentRoot "D:/web/54php"
    DirectoryIndex index.php index.php4 index.php3 index.cgi index.pl index.html index.htm index.shtml index.phtml
    ServerName www.54php.com
    <Directory "D:/web/54php">
    Options Indexes FollowSymLinks
    Order allow,deny
    Allow from all
    </Directory>
</VirtualHost>

Apache Web服务器安全配置全攻略 不指定

Category : Apache | Post on 2008/07/07 13:18 by 特蓝克斯 | Comments:0
作为最流行的Web服务器,Apache Server提供了较好的安全特性,使其能够应对可能的安全威胁和信息泄漏。

  Apache 服务器的安全特性
  1、 采用选择性访问控制和强制性访问控制的安全策略

  从Apache 或Web的角度来讲,选择性访问控制DAC(Discretionary Access Control)仍是基于用户名和密码的,强制性访问控制MAC(Mandatory Access Control)则是依据发出请求的客户端的IP地址或所在的域号来进行界定的。对于DAC方式,如输入错误,那么用户还有机会更正,从新输入正确的的密码;如果用户通过不了MAC关卡,那么用户将被禁止做进一步的操作,除非服务器作出安全策略调整,否则用户的任何努力都将无济于事。

apache和IIS共用80端口 不指定

Category : Apache | Post on 2008/07/07 13:10 by 特蓝克斯 | Comments:0
center.js 将apache设为使用80端口,IIS使用其它端口,比如81,然后将apache作为IIS的代理。
在httpd.conf里面,取消下面四行的注释:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so



然后建立一个虚拟主机,将该域名的所有访问转向81端口。

<VirtualHost *:80>
ServerName iloves.vicp.net
ProxyPass / http://localhost:81/
ProxyPassReverse / http://localhost:81/
</VirtualHost>



这样,对外就可以只需要一个端口,即可同时使用apache和IIS的功能了

如果你是做网站设计,你可以遇到过Windows 80端口被占用的情况,之前apache一直没有任何异常,即使我加载一些配置模块也没有出现过问题,况且服务本身就是自动启动的,启动不来肯定是端口号被占用了,而最让人着急的是找不到80端口到底被谁占用了,不要急,下面就是可以解决的办法!
进入CMD,输入netstat -ano就可以很清楚的看到本地80口占用程序的PID,然后再去任务管理器里查找到PID所对应的进程(如果任务管理器没有PID,查看-->选择列),原来最近下了一个P2P的下载软件80端口被它给占用了,在进程管理器停掉peer进程,改掉设置,APACHE启动正常了。。。

apache下建立多个站点 不指定

Category : Apache | Post on 2008/03/11 20:29 by 特蓝克斯 | Comments:0
在apache 建立多个站点,通过编辑x:/apache/conf/httpd.conf 文件

设置端口号为9527 站点目录为e:/AppServ/asen的一个站点代码如下:
分页: 1/3 第一页 1 2 3 下页 最后页 [ 显示模式: 摘要 | 列表 ]