2010-06-13 85 views
0

我在/var/www目录中创建了一个文件.htaccess。权限是“root root --wxrwxrwxr”。Apache和Rewrite模块

文件的内容是:

Options +FollowSymlinks 
RewriteEngine on 
RewriteLogLevel 3 
RewriteLog "/var/log/apache2/rewrite.log" 
RewriteRule ^(.*?)$ testphp.php 

当我调用页面phpinfo.php的,我有:加载模块... ...的mod_rewrite因此 ,该模块被加载。

每次修改后,我用sudo /etc/init.d/apache2 restart手动恢复服务器。

的error.log中给出

阿帕奇/ 2.2.14(Ubuntu的)PHP/5.3.2-1ubuntu4.2用了Suhosin贴片配置 - 恢复正常操作

当我调用一个页面any.htm或any.php,rewrite.log不包含任何内容,并调用真实页面。如果我明白了,页面anyone.php应替换为testphp.php

我是否犯了错误?

感谢

回答

0

如果我是一个web服务器,我会忽略,这是世界上可写的,稳定和安全的缘故任何配置文件。我知道在Apache中有这样的地方,我忘了.htaccess处理是否是这些地方之一,但我会假设/希望是。

+0

感谢您的回答 我将文件权限更改为644,目录更改为755. 我重新启动Apache服务器,并得到完全相同的结果。 – 2010-06-13 16:49:24

+0

如果您可以负担得起,请添加一行垃圾。htaccess一分钟,并确保它导致服务器错误。它不会取下服务器;它只会打破对该目录及其内容的访问。但这是我知道的最快捷的方式(通过配置文件的根源很短),以确保您的.htaccess文件实际上已被使用。 – cHao 2010-06-13 18:16:46

0

感谢您的帮助

这里是我做了什么让Apache2的服务器的重写规则运行:

  1. 我从一个新的硬盘
  2. 我激活重新安装服务器与“须藤a2enmod重写”的重写
  3. 我创建的文件”的.htaccess'的规则:

    RewriteEngine On 
    RewriteRules ^(.*)$ test.php 
    

在 “的/ etc/apache2的/网站可用/默认”,我在目录中添加/

AllowOverride all 
Order deny,allow 
Allow from all 

,并在目录 “的/ var/www” 的,同样的2号线。我不知道为什么,但规则RewriteLog n不在.htaccess中。在“/ var/www”中,我创建了2个文件,index.html(默认)和test.php。该test.php的包含

<?php phpinfo(); ?> 

当我调用页面的index.html,php的信息显示

一次,谢谢。