• [笔记]apache下htaccess不起作用,linux,windows详解


    可能出现下面这三种的错误可能性: 

    第一种:启用 rewrite 和 .htaccess 设置

    rewrite设置:找到apache的配置文件httpd.conf文件,找到:#LoadModule rewrite_module modules/mod_rewrite.so去掉前面的#号。

    改为:

    LoadModule rewrite_module modules/mod_rewrite.so

    .htaccess设置:

    windows里面这样设置:

    AccessFileName htaccess 

    linux里面这样设置:

    AccessFileName .htaccess

    linux比windows里面文件名前面多了一个点。如果没找到AccessFileName自己在httpd.conf文件最后面加上。

    第二种:AllowOverride 的设置

    默认AllowOverride 为AllowOverride none。把这个改为:AllowOverride All。如果配置了多个虚拟目录需在每个目录里面开启,实例:

    <VirtualHost *:80>
            DocumentRoot "D:SvnTracsvnSVNRepositorywwwroot"
            ServerName 127.0.0.1:80
     
            DirectoryIndex index.html index.htm index.php index.shtml
           <Directory "D:SvnTracsvnSVNRepositorywwwroot">
               Options Indexes FollowSymLinks
               AllowOverride ALL
               Order allow,deny
               Allow from all
           </Directory>
    </VirtualHost>
    
    <VirtualHost 127.0.0.2:80>
            DocumentRoot "D:/SvnTrac/svn/SVNRepository/www/"
            ServerName 127.0.0.2:80
     
            DirectoryIndex index.html index.htm index.php index.shtml
           <Directory "D:/SvnTrac/svn/SVNRepository/www/">
               Options Indexes FollowSymLinks
               AllowOverride ALL
               Order allow,deny
               Allow from all
           </Directory>
    </VirtualHost>

    第三种:Options 的设置

    默认设置是:Options Indexes FollowSymLinks
    如果改成以下设置后,就会出错
    Options Indexes FollowSymLinks MultiViews Includes (出错)
    如果要启用,目录浏览 MultiViews
    服务器端包含 Includes (<!–#include virtual=”top.htm” –>)

    为了简单可以设置为:Options All

     前两种是配置中常见的错误,第三种一般少见,最后提醒一下,记得配置文件改好后一定要重启服务器

    参考文档:

  • 相关阅读:
    多线程
    泛型
    枚举、注解
    重写comparater比较器
    Arrays工具类和Collections工具类
    重写equals和hashCode的方法
    遍历集合的方法
    关键字总结
    having 的用法
    HTTP协议
  • 原文地址:https://www.cnblogs.com/lizhishugen/p/2772321.html
Copyright © 2020-2023  润新知