zoukankan      html  css  js  c++  java
  • .htaccess 文件不起作用?| (Apache Rewrite)

    打开了 Apache 的 Rewrite 模块,想对一个本地的 Apache 虚拟主机进行一下 URL 重写,测试一下功能:

    虚拟主机的配置子文件被包含在了主 Apache 配置文件里:

    主配置文件(D:\usr\local\apache2\conf\httpd.conf):

    # 包含 phpweb20 虚拟主机配置文件 
    Include D:/usr/webroot/Zendphpweb20/httpd.conf

    子配置文件(D:\usr\webroot\Zendphpweb20\httpd.conf):

    #phpweb20 虚拟主机设置
    <VirtualHost 127.0.0.2:80>
        ServerName phpweb20
        DocumentRoot D:/usr/webroot/Zendphpweb20/htdocs
    
        <Directory D:/usr/webroot/Zendphpweb20/htdocs>
            AllowOverride All
            Options All
        </Directory>
    	
        <IfModule rewrite_module>
    	RewriteEngine On
    	RewriteCond %{SCRIPT_FILENAME} !-f
    	RewriteCond %{SCRIPT_FILENAME} !-d
    	RewriteRule ^/(.*)$ /index.php
        </IfModule>
    	
        #修改 PHP 配置(可选)
        php_value include_path .;D:/usr/webroot/Zendphpweb20/include;D:/usr/local/php5/PEAR
        php_value magic_quotes_gpc off
        php_value register_globals off
    </VirtualHost>

    中间的 <IfModule> 块即为重写定义区域:

    RewriteEngine On

    开启 Apache Rewrite 模块;

    RewriteCond %{SCRIPT_FILENAME} !-f

    如果所请求的文件未对应到相对于 Web 根目录的某个文件,则使用重写规则;

    RewriteCond %{SCRIPT_FILENAME} !-d

    如果请求不存在的目录,则使用重写规则;

    RewriteRule ^/(.*)$ /index.php

    如果满足上述的两个条件之一,则执行此条重写规则;

    ---------------------------------------------------------------------以上似乎没有问题

    可是当我删除 httpd.conf 中的 <IfModule> 块,把重写规则写入 .htaccess 文件里,并放在根目录下时,Apache 好像并没有理会 .htaccess 文件,重写失败!!不知道是为什么!是不是两个位置的重写规则有些差异还不知道呢?

    望高人指导…Waiting..



  • 相关阅读:
    Multisim的电路分析方法
    转载论文关于fir滤波器的fpga实现
    verilog数组定义及其初始化
    FIR滤波器的FPGA实现方法
    matlab的fda工具使用方法
    卷积的幽默解释
    lvds配置
    latch的产生和消除
    时序优化实例
    第九篇:使用 lstat 函数获取文件信息
  • 原文地址:https://www.cnblogs.com/catprayer/p/1865604.html
Copyright © 2011-2022 走看看