全部博文(32)
分类:
2012-10-18 14:29:39
如果你的服务器apache还没有安装,那很简单,在编译apache时将 mod_rewrite模块编译进去就可以,相关文档可以在 … ew/mod/mod_rewrite. html中找到。如果你的apache已经安装好了,现在只想编译出mod_rewrite.so模块,在apache中进行加载,下面我们就介绍这个方 法。 以Fedora操作系统进行举例: 1)首次安装apache,在编译时增加–enable-rewrite选项。 如./configure –prefix=/opt/apache --enable-so --enable-mods-shared=all --enable-rewrite --enable-cache 2)增加mod_rewrite模块 # cd /root/httpd-2.2.8 # find . -name mod_rewrite.c //在apache的源码安装目录中寻找mod_rewrite.c文件 (2.2.8在目录httpd-2.2.8/modules/mappers下,我找了半天才找到的) # cd PATH/to/mod_rewrite.c //进入包含mod_rewrite.c文件的目录 # /opt/apache/bin/apxs -c mod_rewrite.c //apxs应指定绝对路径,在你当前正在使用apache的bin目录里 # /opt/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 检查:
[root@www httpd-2.2.8]# ../bin/apachectl configtest 这时,你的apache应该已经支持rewrite了。 完成之后,记得重启服务器apache。 注意下一步,配置虚拟主机的时候要类似如下设置才可以生效:
点击(此处)折叠或打开
另外一个例子:
[root@tuiguangvm conf]# /usr/local/apache/bin/apachectl -l | grep write
mod_rewrite.c
我的apache配置文件如下: ##from ce
Options FollowSymLinks
Order allow,deny
Allow from all
AllowOverride All ##必须要添加使之支持url rewrite
在安装shopex测试时遇到了问题!
设置伪静态失败无法自动生成.htaccess,可能是权限问题,启用伪静态失败
原因:apache启动是用nobody和nobody组启动的! 故程序生成的文件所有者是nobody:nobody组
但web目录只有本用户可以写入(例如;abc),故写入失败
设置伪静态失败您的系统不支持apache的.htaccess,启用伪静态失败.!
原因:apache中没有设置支持伪静态
解决方法:
在相关目录中加入: AllowOverride All 即可正常!
测试:
[root@tuiguangvm tmp]# /usr/local/apache/bin/htpasswd -c /tmp/.htpasswd liu
New password:
Re-type new password:
Adding password for user liu
[root@tuiguangvm tmp]# pwd
/tmp
[root@tuiguangvm tmp]# cat .htpasswd
liu:AdC7oLVEI.oyo
[root@tuiguangvm tmp]#
[root@tuiguangvm images]# pwd
/web/abc.ungeo.com/web/images
[root@tuiguangvm images]# cat .htaccess
AuthType Basic
AuthName "test"
AuthUserFile /tmp/.htpasswd
require user liu
require valid-user
[root@tuiguangvm images]# cat index.html
test
用网页测试如下:
可以测试如果将 AllowOverride All 在httpd.conf中注释掉,则不会弹出对话框提示输入用户名和密码!
|