解决了,我是这么理解的,不知道有没有错误。
使用apache2.4配置301跳转和静态缓存时,分别在httpd-vhosts.conf中添加了mod_rewrite.so和mod_expires.so相关语句,但都不起作用。
于是用apachectl –M查看加载的模块,并没有expires_module (shared)和rewrite_module (shared)。
由于安装apache时,编译参数添加了—enable-rewrite=shared和—enable-expires=shared,所以直接打开httpd.conf,搜索“rewrite” ,找到:
LoadModule rewrite_module modules/mod_rewrite.so,启用即可。expires同理。
若是安装httpd时没有包含模块参数,需要用apxs安装:
以下来源于http://qingwang.blog.51cto.com/505009/293093X22X
增加mod_rewrite模块(expires同理)
# find . -name mod_rewrite.c //在apache的源码安装目录中寻找mod_rewrite.c文件
# cd PATH/to/mod_rewrite.c //进入包含mod_rewrite.c文件的目录
# /usr/local/apache/bin/apxs -c mod_rewrite.c //apxs应指定绝对路径,在你当前正在使用apache的bin目录里
# /usr/local/apache/bin/apxs -i -a -n mod_rewrite mod_rewrite.la
如果没有什么错误的话,应该在你的apache的modules目录中编译出一个mod_rewrite.so文件。
编辑httpd.conf文件,确认httpd.conf中已经包含mod_rewrite.so的加载语句,如下:
LoadModule rewrite_module modules/mod_rewrite.so
这时, apache应该已经支持rewrite。重启apache。
编辑回复