我在 / var / www 目录中创建了一个文件.htaccess。权利是“root root --wxrwxrwxr”。
该文件的内容是:
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提供
配置了Suhosin-Patch的Apache / 2.2.14(Ubuntu)PHP / 5.3.2-1ubuntu4.2 - 恢复正常操作
当我调用any.htm或anyone.php页面时,rewrite.log确实不包含任何内容,并调用真实页面。如果我理解,页面anyone.php
应替换为testphp.php
我做错了吗?
由于
答案 0 :(得分:0)
如果我是一个Web服务器,我会忽略任何世界可写的配置文件,以确保稳定性和安全性。我知道Apache中的地方正是这样做的;我忘了.htaccess处理是否是那些地方之一,但我认为/希望它是。
答案 1 :(得分:0)
感谢您的帮助
以下是我使用重写规则运行Apache2服务器的方法:
我使用以下规则创建了文件'.htaccess':
RewriteEngine On
RewriteRules ^(.*)$ test.php
在“/ etc / apache2 / sites-available / default”中,我在目录/
中添加了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信息
再一次,谢谢。