Apache和重写模块

Apache和重写模块,apache,mod-rewrite,Apache,Mod Rewrite,我在/var/www目录中创建了一个.htaccess文件。权限是“根根--wxrwxr” 该文件的内容是: Options +FollowSymlinks RewriteEngine on RewriteLogLevel 3 RewriteLog "/var/log/apache2/rewrite.log" RewriteRule ^(.*?)$ testphp.php 当我调用phpinfo.php页面时,我得到了:加载的模块。。。修改。。。 因此,模块被加载 每次修改后,我都会使用sud

我在/var/www目录中创建了一个.htaccess文件。权限是“根根--wxrwxr”

该文件的内容是:

Options +FollowSymlinks
RewriteEngine on
RewriteLogLevel 3
RewriteLog "/var/log/apache2/rewrite.log"
RewriteRule ^(.*?)$ testphp.php
当我调用phpinfo.php页面时,我得到了:加载的模块。。。修改。。。 因此,模块被加载

每次修改后,我都会使用sudo
/etc/init.d/apache2 restart
手动重新启动服务器

error.log给出了

配置了Suhosin补丁的Apache/2.2.14(Ubuntu)PHP/5.3.2-1ubuntu4.2--恢复正常操作

当我调用一个页面anyone.htm或anyne.php时,rewrite.log不包含任何内容,真正的页面被调用。如果我理解,页面
anyone.php
应该被
testphp.php

我做错什么了吗


谢谢

如果我是一个web服务器,出于稳定性和安全性的考虑,我会忽略所有可写的配置文件。我知道在阿帕奇有这样的地方;我忘了.htaccess处理是否是其中之一,但我认为/希望是这样。

谢谢您的帮助

下面是我使用重写规则运行Apache2服务器的步骤:

  • 我从新硬盘重新安装了服务器
  • 我用“sudo a2enmod Rewrite”激活了重写
  • 我使用以下规则创建了文件“.htaccess”:

    RewriteEngine On
    RewriteRules ^(.*)$ test.php
    
  • 在“/etc/apache2/sites available/default”中,我在目录中添加了/

    AllowOverride all
    Order deny,allow
    Allow from all
    
    在目录“/var/www”中,相同的两行。我不知道为什么,但是规则
    RewriteLog n
    在.htaccess中没有这个词。在“/var/www”中,我创建了两个文件,index.html(默认值)和test.php。php包含

    <?php phpinfo(); ?>
    
    
    
    当我调用page index.html时,会显示php信息


    再来一次,谢谢。

    谢谢你的回答,我把文件权限改为644,目录改为755。我重新启动Apache服务器,得到了完全相同的结果。如果您负担得起,请在.htaccess中添加一行垃圾,等待一分钟,并确保它导致服务器错误。它不会关闭服务器;它只会破坏对该目录和其中所有内容的访问。但是,这是我所知道的确保.htaccess文件被实际使用的最快的方法(除了在配置文件中寻找根)。