[伪静态]基于Apache URL Rewrite的静态化网页(.htaccess)

1、修改文件:Apache2.X.X/conf/httpd.conf

   找到这一行# LoadModule rewrite_module modules/mod_rewrite.so,将前面的#删除

2、 查找所有的AllowOverride,将后面的none修改为ALL

   <Directory />

      Options FollowSymLinks

      AllowOverride ALL        //就是这一行

      Order deny,allow

      Allow from all

      Satisfy all

  </Directory>

3、 重新启动Apache

4、 再配上针对于你的程序设计的.htaccess文件,就可以静态化网页。

如用虚拟主机时,为每个虚拟主机单独指定.htaccess,如

Listen 80

NameVirtualHost *:80

<VirtualHost *:80>

DocumentRoot "E:/website/webdir"

ServerName www.mysite.cn

<Directory />

Options FollowSymLinks

AllowOverride ALL

Order deny,allow

allow from all

Satisfy all

</Directory>

  AccessFileName .htaccess //本行

</VirtualHost>


 

.htaccess示例:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule index.html index.php
RewriteRule about.html about.php
RewriteRule about([0-9]+).html$ about.php?aid=$1
RewriteRule news.html news.php 
RewriteRule news([0-9]+).html$ news.php?nid=$1
RewriteRule news([0-9]+)_([0-9]+).html$ news.php?nid=$1&page=$2
RewriteRule newspage([0-9]+).html$ news.php?act=page&id=$1
RewriteRule product.html product.php
RewriteRule product([0-9]+).html$ product.php?pid=$1
RewriteRule product([0-9]+)_([0-9]+).html$ product.php?pid=$1&page=$2
RewriteRule productpage([0-9]+).html$ product.php?act=page&id=$1
RewriteRule product_cart.html product_cart.php
RewriteRule productpage([0-9]+).html$ product.php?act=page&id=$1
RewriteRule guest.html$ guest.php
RewriteRule guestact.html$ guest.php?act=add
RewriteRule guestmanager.html$ guest.php?act=manager

 </IfModule>

上例中的

RewriteRule news.html news.php 

   在PHP页面里面我们可以把链接写成 news.html 的形式,Apache在解析这个 URL的时候会rewrite成  news.php的形式,并返回正确的页面。 

 

RewriteRule news([0-9]+)_([0-9]+).html$ news.php?nid=$1&page=$2
   在PHP页面里面我们可以把链接写成 news11122_10.html 的形式,Apache在解析这个 URL的时候会rewrite成news.php?nid=11122&page=10的形式,并返回正确的页面。

 

 RewriteRule productpage([0-9]+).html$ product.php?act=page&id=$1

   在PHP页面里面我们可以把链接写成 productpage19.html 的形式,Apache在解析这个 URL的时候会rewrite成product.php?act=page&id=19的形式,并返回正确的页面。

 

 

 

运用正则表达式我们可以实现几乎任何我们想要的链接形式,mod_rewrite模块的功能异常强大,这里只是一个及其简单的应用。

 

 

.htaccess相关介绍

htaccess的特别说明

* 启用.htaccess,需要修改httpd.conf,启用AllowOverride,并可以用AllowOverride限制特定命令的使用
* 如果需要使用.htaccess以外的其他文件名,可以用AccessFileName指令来改变。例如,需要使用.config ,则可以在服务器配置文件中按以下方法配置:

AccessFileName .config

* 一般情况下,不应该使用. htaccess文件,除非你对主配置文件没有访问权限。有一种很常见的误解,认为用户认证只能通过.htaccess文件实现,其实并不是这样,把用户认证写在主配置文件中是完全可行的,而且是一种很好的方法。.htaccess文件应该被用在内容提供者需要针对特定目录改变服务器的配置而又没有 root权限的情况下。如果服务器管理员不愿意频繁修改配置,则可以允许用户通过.htaccess文件自己修改配置,尤其是ISP在同一个机器上运行了多个用户站点,而又希望用户可以自己改变配置的情况下。虽然如此,一般都应该尽可能地避免使用.htaccess文件。任何希望放在.htaccess文件中的配置,都可以放在主配置文件的<Directory>段中,而且更高效。避免使用.htaccess文件有两个主要原因,即性能和安全。

附:

在线 .htaccess文件生成器

http://cooletips.de/htaccess/
能够在线生成. htaccess文件,很简单的就配置重定向,系统错误文件等。

.htaccess编辑器在线编辑器

可自定义默认编码,错误页面等等
下载地址: http://9458398.cn/attachments/month_0506/zxp4_my.rar

.htaccess文件使用教程目录:

 

 .htaccess文件使用教程1| .httacces文件介绍与创建

 .htaccess文件使用教程2| .httacces文件的配置

 .htaccess文件使用教程3| .httacces文件的密码保护和防止盗链

 .htaccess文件使用教程4| .htaccess 文件使用教程总结  

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值