今天给朋友开了一个站需要支持伪静态,当时我想直接在服务器中给加了算了,结果加进入 支不行,因为他的配置文件就是.htaccess伪静态规则,放在apache 的配置文件中不行,后来百度了解决办法。
1、首先确定Apache是否加载了Mod_rewrite 模块
方法: 检查 httpd.conf 中是否存在以下两段代码 (具体路径可能会有所不同,但形式基本是一样的):
(一)LoadModule rewrite_module libexec/mod_rewrite.so
(二)AddModule mod_rewrite.c
2、检查Apache是否开启.htaccess支持
httpd.conf
AllowOverride All #如果后面参数为None需要修改为All
编辑apache的httpd.conf
- <Directory />
- Options FollowSymLinks
- AllowOverride All
- </Directory>
-
- <Directory "目录">
- #
- # 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
- # 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>
3、在文件httpd.conf相应的主机目录配置中加入如下代码(此时须注意,如果网站是通过虚拟主机来定义,请务必加到虚拟主机配置中去,否则可能无法使用。)
注意事项:我当时也只把AllowOverride none改成了all但是没有效果,后来直接查了了httpd.conf文件中所有AllowOverride none替换成AllowOverride All再重启apache就可以使用htaccess了。 |