0

一連のルールで .htaccess を設定しました。

RewriteEngine on
RewriteCond $1 !^(index\.php|images|stylesheets|javascript|robots\.txt)
RewriteRule ^Canvas/(.*)/(.*)$ /canvas.php?a=$1&b=$2 [L]
RewriteRule ^(.*)$ /index.php/$1 [L]

上記のルールはリダイレクトされ、500 内部サーバー エラーがスローされます。

最後の行にコメントすると、ルール /canvas/something/something に従うものはすべて正常に機能しますが、最後の行のコメントを外すと問題が発生します。

のような条件を追加してみました

RewriteCond %{REQUEST_URI}  !^/canvas.php.*

RewriteCond %{REQUEST_FILENAME}  !^/canvas.php.*

しかし、それは問題を解決しませんでした。

どうすればこれを解決できますか?

4

3 に答える 3

0

[L]「このラウンド」を停止し、新しい URL で書き換えの実行を再開するだけです。試してみてください[END]

End vs Last フラグを参照してください。

または、スキップ フラグを使用することはできません[S=number_of_rules_to_skip]

于 2013-06-14T11:33:46.883 に答える
0

おそらく、環境変数を追加して、リダイレクトしたという事実をマークし、RewriteCond. 例(未テスト):

RewriteEngine on
RewriteCond $1 !^(index\.php|images|stylesheets|javascript|robots\.txt)
RewriteRule ^Canvas/(.*)/(.*)$ /canvas.php?a=$1&b=$2 [E=REWRITEDONE:1,L]

RewriteCond %{ENV:REWRITEDONE} !1
RewriteRule ^(.*)$ /index.php/$1 [L]
于 2013-06-14T11:31:05.457 に答える