mod_rewrite добавляет расширение php? - PullRequest
4 голосов
/ 16 марта 2012

Последние 2 дня я пытаюсь запустить какое-то приложение на моем компьютере (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>

есть идеи, почему это происходит?

EDIT: У меня есть проблема, чтобы поместить все правила перезаписи в стек, поэтому вот они: http://pokazkod.pl/d52823d5f0d31ff26e1e29873383d2a2ceb216306a56b3aec1 ни один из них не выглядит мне подозрительно: /

1 Ответ

8 голосов
/ 21 марта 2012

Попробуйте удалить MultiViews

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