RewriteBase: only valid in per-directory config files 解答:

呵呵,要实现伪静态必须开启Apache的重写模块,首先要修改http.conf文件,将

#LoadModule rewrite_module modules/mod_rewrite

前面的#去掉就可以了。

然后是针对网站做重写规则,不过这里有两种方法,我来给大家介绍一下^_^ (别丢砖啊!)

  1. 直接修改虚拟主机的配置,比如 PHP代码
    1. <VirtualHost 221.130.187.81:80>   
    2.          **********   
    3.          DocumentRoot /var/www/html/   
    4.          ServerName   tinico.cn   
    5.          ServerAlias www.tinico.cn   
    6.          **********   
    7.      <IfModule mod_rewrite.c>   
    8.        RewriteEngine On  
    9.        RewriteRule ^(.*)/(search|reg|login|index|links)\.html$ $1/index.php?action=$2  
    10.        RewriteRule ^(.*)/(index)-([0-9]+)\.html$ $1/index.php?action=$2&page=$3  
    11.      </IfModule>   
    12. </VirtualHost>  
    其中*号部分省略的内容不在本文讨论范围之内。那么相信懂一点正则表达式规则的朋友已经能很明显的看出写法了。红色部分的$N表示对应于前面匹配规则中的 匹配项,^(.*)/表示的是任意字符,也就是域名了嘛,呵呵,当然你要明确地写出域名也是可以滴!
  2. 第二种方法就是写.htaccess文件了,主要是一些朋友没有服务器的管理权限,比如使用虚拟主机的朋友们。但是前提是必须服务器要支持读取.htaccess文件。要让服务器支持的话必须修改http.conf文件,如下 PHP代码
    1. <Directory "/var/www/html/">   
    2.       Options -Indexes FollowSymLinks   
    3.       AllowOverride all   
    4. </Directory>   
    5.   
    6. <VirtualHost *.*.*.*>   
    7.       *******   
    8.       DocumentRoot /var/www/html/   
    9.       ServerName   tinico.cn   
    10.       ServerAlias www.tinico.cn   
    11.       *******   
    12. </VirtualHost>  
    重点就是针对某个目录设置AllowOverride属性,当然,我这里为了简便,直接全部开启,也就是上面代码中的AllowOverride all 具体要根据所需权限合适的选择开放的程度,要谈得更详细,请上Google搜索,呵呵这个不适本文讨论的重点。开放了复写服务器配置的功能之后就可以在网 站的根目录下创建一个.htaccess文件了,具体内容如下 PHP代码
    1. RewriteEngine On   
    2. RewriteBase /   
    3. RewriteRule ^show-([0-9]+)-([0-9]+)\.html$ index.php?action=show&id=$1&page=$2  
    4. ******  
    当然,规则和第一种方法是一样的,不过这里可以使用RewriteBase /来设置重写规则的适应范围为当前目录下。那么之后的重写规则就不必像第一种方法那样设置^(.*)/了,那么为什么我在第一种方法中不这样写呢?呵呵因 为第一种方法不能这么写,要是这样写了,apache会告诉你RewriteBase: only valid in per-directory config files,意思就是仅在每个文件夹下的配置文件中使用。

好了,配置完了以后别忘记重起一下apache让配置生效!

像这样配置完了以后你不必再考虑如何生成静态页面了,或者不必每次更新文章之后都要考虑是不是全部页面都重新生成了啊,这对于中小型网站特别实用,当然,大型网站还是想想办法全部生成静态吧,毕竟伪静态要消耗那么一点点服务器的资源,呵呵。

转载于:https://www.cnblogs.com/lihuimingcn/archive/2013/01/01/2841812.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值