1

書き換え条件を作成する必要があります:

/Cms/index.php/$1たとえば、URLに「cms」が見つかったときにユーザーをリダイレクトしたい:http://example.com/cms/

そうでなければ、にリダイレクトしたいのです/App/index.php/$1が、すでに何かを作成しましたが、500エラーが発生しました。

RewriteEngine On
RewriteRule ^cms     /Cms/index.php/$1 [L]
RewriteRule ^.*$     /App/index.php/$1 [L]

ありがとう

@編集

試してみましたが、500にもなりました。

error.log

[Sun Dec 23 19:40:54 2012] [error] [client 127.0.0.1] Request exceeded the limit of 10 internal redirects due to probable configuration error.vUse 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
4

2 に答える 2

0

このコードを使用してみてください:

RewriteEngine On
RewriteRule ^cms(.*)     /Cms/index.php/$1 [L]
RewriteRule ^(.*)$     /App/index.php/$1 [L]
于 2012-12-23T18:32:06.750 に答える
0

apache は rewrite-rules を 1 回だけ実行するわけではないことに注意してください。URL が変更されなくなるまでルールを適用しようとします (これにより mod_rewrite は非常に強力になります)。そのため、エラーが発生します。ルールがリダイレクト ループを作成しています。

たとえば、 に/cms/test誘導し/Cms/index.php/test、これが 2 番目のルールによって一致し、 に誘導し/App/index.php/Cms/index.php/test、この URL が 2 番目のルールによって再度一致し、/App/index.php/App/index.php/Cms/index.php/testなどに誘導します。

このループを防ぐには、rewrite-condition を追加します。

RewriteEngine On

RewriteRule ^cms     /Cms/index.php/$1 [L]

RewriteCond %{REQUEST_URI} !^/(Cms|App)
RewriteRule ^.*$     /App/index.php/$1 [L]
于 2012-12-23T21:51:09.003 に答える