mod_rewrite添加php扩展?

krz*_*iek 4 php apache mod-rewrite

最近两天我试图在我的计算机上运行一些应用程序(Ubuntu 11.10,Apache/2.2.20(Ubuntu),PHP版本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 没有对他们看起来很可疑:/

Afa*_*kin 8

尝试删除MultiViews

<Directory /var/www/engbook>
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)