Windows系统Apache服务开启伪静态模块支持.htaccess

网站建设 / 10 次阅读

伪静态的核心是Apache的mod_rewrite模块,它允许我们重写客户端请求的URL,而不需要实际存在对应的物理文件,默认下mod_rewrite模块处于关闭状态,即手动配置开启。

操作步骤:

1、进入Apache安装目录,找到配置文件httpd.conf(如F:\Server\Apache24\conf\httpd.conf),编辑该文件,找到:

#LoadModule rewrite_module modules/mod_rewrite.so

把前面的“#”去掉取消注释,修改为:

LoadModule rewrite_module modules/mod_rewrite.so

PS:如果没有找到这一行,可以直接复制上面的代码手动添加这行代码。

2、找到定义网站根目录的<Directory>,如:

<Directory "${SRVROOT}/htdocs">
    #
    # 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.4/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:
    #   AllowOverride FileInfo AuthConfig Limit
    #
    AllowOverride None

    #
    # Controls who can get stuff from this server.
    #
    Require all granted
</Directory>

AllowOverride None修改为AllowOverride all,修改后的代码如下:

<Directory "${SRVROOT}/htdocs">
    #
    # 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.4/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:
    #   AllowOverride FileInfo AuthConfig Limit
    #
    AllowOverride All

    #
    # Controls who can get stuff from this server.
    #
    Require all granted
</Directory>

说明:

  • AllowOverride None:表示 Apache 完全忽略.htaccess文件。

  • AllowOverride All:表示允许.htaccess文件覆盖 Apache 的配置,这是使用mod_rewrite规则所必需的。

3、以管理员身份打开命令提示符,运行下面的命令重启Apache服务器:

net stop apache2.4 && net start apache2.4

或进入Apache的bin目录执行:

./httpd.exe -k restart

Apache重启成功后,就可以使用.htaccess文件添加伪表态规则了。

PS:.htaccess文件则是一个分布式配置文件,可以放在任何目录中,来为该目录及其所有子目录定义重写规则。