大家好,又见面了,我是你们的朋友全栈君。
只是用来做参考,相关情况可跟据自己的需求进行修改 如果你的服务器apache还没有安装,那很简单,在编译apache时将mod_rewrite模块编译进去就可以,相关文档可以在[url] www.gbunix.com[/url]中找到。如果你的apache已经安装好了,现在只想编译出mod_rewrite.so模块,在apache 中进行加载,下面我们就介绍这个方法。 以Solaris操作系统进行举例:
# PATH=/usr/local/bin:/usr/sfw/bin:/usr/ccs/bin: $PATH # export PATH # which gcc # which make
# find ./ -name mod_rewrite.c //在apache的安装目录中寻找mod_rewrite.c文件 # cd PATH/to/mod_rewrite.c //进入包含mod_rewrite.c文件的目录 # apxs -c mod_rewrite.c //apxs请指定绝对路径,在你当前正在使用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已安装完毕,手动添加mod_rewrite模块 #find . -name mod_rewrite.c //在apache的源码安装目录中寻找mod_rewrite.c文件 #cd modules/mappers/mod_rewrite.c //进入包含mod_rewrite.c文件的目录 #/usr/share/apache-2.2.11/bin/apxs -c mod_rewrite.c //apxs应指定绝对路径,在你当前正在使用apache的bin目录里 #/usr/share/apache-2.2.11/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。 7.可能遇到的问题 httpd: Syntax error on line 54 of /usr/share/apache-2.2.11/conf/httpd.conf: Can’t locate API module structure `mod_rewrite_module’ in file /usr/share/apache-2.2.11/modules/mod_rewrite.so: /usr/share/apache-2.2.11/modules/mod_rewrite.so: undefined symbol: mod_rewrite_module 修改 httpd.conf,将 LoadModule mod_rewrite_module modules/mod_rewrite.so 改为 LoadModule mod_rewrite modules/mod_rewrite.so 如果出现这个错误 Syntax error on line 329 of /usr/local/apache2/conf/httpd.conf: Can`t loacte API module staructure `mod_rewrite_module` in file /usr/local/apache2/modules/mod_rewrite.so:/usr/local/apache2/lib/libapr- 0.so.0:undefined symbol:mod_rewrite_module 修改http.conf 原来:httpd.conf里面写的mod_rewrite_module 改成 rewrite_module
如果重启apache出现这个错误module rewrite_module is built-in and can`t be loaded 表示模块是内建的,不用再调入,注释掉 #LoadModule rewrite_module modules/mod_rewrite.so ##################################################### 检查: [root@www httpd-2.2.8]# ../bin/apachectl configtest Syntax OK 这时,你的apache应该已经支持rewrite了。
注意下一步,配置虚拟主机的时候要类似如下设置才可以生效: DocumentRoot /var/www/www/www.fastu.cn/ ServerName www.fastu.cn
Options FollowSymLinks AllowOverride All order allow,deny Allow from all
如果AllowOverride设置为none的话,apache会不读取网站的.htaccess文件!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/191176.html原文链接:https://javaforall.cn