2012-03-16 18 views
4

私は自分のコンピュータ(Ubuntu 11.10、Apache/2.2.20(Ubuntu)、PHP Version 5.3.6-13ubuntu3.1)でいくつかのアプリケーションを実行しようとしています。これはPHP Smartyで作成され、書き換えルールを使用します。それは正確にそれが行われるべきかmod_rewriteはPHP拡張を追加していますか?

localhost/news.php

に翻訳されています

localhost/news

:すべてはのようなリンクが正常に動作します。

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

しかし、それは動作しません。しかし、問題は、それがルールに翻訳されなければならない

localhost/message/inbox

のようなより複雑なリンクです。私はそれをデバッグしようとしていた。私はhttp.confに

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

にログをtrunedそして、私が見ることができることは初めに

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

投稿してください削除してくださいあなたの書き換えルール – scibuff

+0

それが機能していないと言ったら、どういう意味ですか?あなたはエラーが発生しますか?あなたは間違ったページを取得しますか?間違った出力?私はあなたのルールを使用しました。私が '/ messages/inbox'に行くとき、' messages.php?action = inbox'を呼び出します。 – roychri

+0

とそれは私がルールで期待するものですが、何とかそれは?action = inboxなしでmessages.phpだけを呼び出します。 messages.phpには、$ _GET ['action']にswitch statmentがあり、変数$ _GETが空であることがわかります... Apacheの設定に問題があると思いますが、どこにあるのかわかりません。 – krzysiek

答えて

8

MultiViews

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

OPはこれを受け付けませんでしたが、私はちょうど同じ問題を抱えていて、MultiViewsを削除して解決しました。 – M1ke

+1

ありがとう@afanasy。それは私が私の書き換えルールの問題を見つけるのを助けた –

関連する問題