A-A+

Windows下让Apache支持rewrite和.htaccess

2008年12月17日 WordPress, 学习随笔 暂无评论 阅读 1 次
摘要:

作为一个使用WordPress我为了调试各式各样的主题和插件,不得不自己搭建一套开发环境。由于现在个人电脑都是Windows,所以也就自然而然的使用了Win+Apache+MySQL+PHP了。
不过这样的开发环境还是有很多问题的,比如我这两天想看看永久链接的效果,发现设定了永久链接后,竟然除了主页每一页都变成了HTTP404,这个……原来是我的Apache没有支持mod_rewrite

作为一个使用WordPress我为了调试各式各样的主题和插件,不得不自己搭建一套开发环境。由于现在个人电脑都是Windows,所以也就自然而然的使用了Win+Apache+MySQL+PHP了。
不过这样的开发环境还是有很多问题的,比如我这两天想看看永久链接的效果,发现设定了永久链接后,竟然除了主页每一页都变成了HTTP404,这个……原来是我的Apache没有支持mod_rewrite。

于是乎,我网上google解决的办法,找到的最多的是“windows环境下apache rewrite配置”这么一篇文章。

该文章介绍的办法之说对了一部分。按照做了以后,并不能解决问题,尤其是其关于AddModule的那个说明,我用Test Configuration测试,发现AddModule这个指令并不正确。可能是那片文章较老,而我现在用的是最新的Apache2.2所致。不过,最终,我还是找到了正确的办法的,特意记录在此,希望能为后来的朋友解决问题。

首先查看一下你的phpinfo(),如果在apache2handler的Loaded Modules 中找到了mod_rewrite 那么说明你的rewrite module已经加载了。如果没有开启“mod_rewrite”,则打开您的apache安装目录“/apache/conf/”下的 httpd.conf 文件,通过Ctrl+F查找到“LoadModule rewrite_module”,将前面的"#"号删除即可。如果没有查找到,则到“LoadModule”区域,在最后一行加入“LoadModule rewrite_module modules/mod_rewrite.so”(必选独占一行),然后重启apache服务器即可。

全部设定妥当后,我又进行了一次尝试,咦,为什么WordPress中设置的永久链接还是无效呢?问题在这里:
<Directory "E:/www">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks

#
# AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride All

#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all

</Directory>

看到我加粗的那行了吧,AllowOverride指令,决定了你的.htaccess是否生效,如果你在调试永久链接的时候发现不起作用,不一定只是因为mod_rewrite没有加载,还有可能是httpd.conf设置不对造成的哦~~

给我留言

Copyright © 浩然东方 保留所有权利.   Theme  Ality 07032740

用户登录