.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..

你可能感兴趣的:(rewrite)