私は自分のコンピュータ(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 どれも私には不審探す必要はありません:/
投稿してください削除してくださいあなたの書き換えルール – scibuff
それが機能していないと言ったら、どういう意味ですか?あなたはエラーが発生しますか?あなたは間違ったページを取得しますか?間違った出力?私はあなたのルールを使用しました。私が '/ messages/inbox'に行くとき、' messages.php?action = inbox'を呼び出します。 – roychri
とそれは私がルールで期待するものですが、何とかそれは?action = inboxなしでmessages.phpだけを呼び出します。 messages.phpには、$ _GET ['action']にswitch statmentがあり、変数$ _GETが空であることがわかります... Apacheの設定に問題があると思いますが、どこにあるのかわかりません。 – krzysiek