mod_rewrite添加php扩展?

时间:2012-03-16 15:24:43

标签: php apache mod-rewrite

最近2天我试图在我的计算机上运行一些应用程序(Ubuntu 11.10,Apache / 2.2.20(Ubuntu),PHP Version 5.3.6-13ubuntu3.1)。它是在PHP Smarty中创建的,它使用重写规则。一切都很好用链接,如:

localhost/news

它被正确翻译成

localhost/news.php 

应该怎么做。但问题是更复杂的链接,如

localhost/message/inbox

应该用规则翻译:

RewriteRule ^messages/(.*)$ /messages.php?action=$1

但它不起作用。我试图调试它。我已经完成登录http.conf

RewriteLog "/home/krzysztofp/rewrite.log"
RewriteLogLevel 3

我能看到的是,在开始时有

127.0.0.1 - - [16/Mar/2012:15:56:36 +0100] [krzysztofp/sid#7f8218546a30][rid#7f821837a0a0/subreq] (3) [perdir /var/www/engbook/] add path info postfix: /var/www/engbook/messages.php -> /var/www/engbook/messages.php/inbox

然后它正在尝试匹配message.php

127.0.0.1 - - [16/Mar/2012:15:56:36 +0100] [krzysztofp/sid#7f8218546a30][rid#7f821837a0a0/subreq] (3) [perdir /var/www/engbook/] applying pattern '^messages/(.*)$' to uri 'messages.php/inbox'

虚拟主机:

<Directory /var/www/engbook>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>

知道为什么会这样吗?

编辑: 我有一个问题,将所有重写规则放在堆栈上,所以这里是: http://pokazkod.pl/d52823d5f0d31ff26e1e29873383d2a2ceb216306a56b3aec1 他们看起来都不怀疑我:/

1 个答案:

答案 0 :(得分:8)

尝试删除MultiViews

<Directory /var/www/engbook>
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>