9

phpancakeをインストールしていますが、このようなシェマフォルダがあります

application/
install/
library/
public/
sql_schema/
install.html
install.php

このルールはどういう意味ですか?

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /vote/public/index.php [NC,L]
4

3 に答える 3

14

書き換えには2つの部分があります。最初のファイル名は、要求されたファイル名が0()より大きいサイズの通常のファイル-s、シンボリックリンク(-l)、またはディレクトリ(-d)である場合、どこにも書き換えないことを指定します。何もするな。[NC,L]ルールで大文字と小文字が区別されず、これらの条件が一致する最後のルールであることを意味します。

他のすべてのリクエストはに転送され/vote/public/index.phpます。

この書き換えの目的は、実際の既存のファイルを干渉なしにサーバーからフェッチできるようにすることです。最初のルールがないと、すべてのファイル要求(cssおよびjsファイル、画像など)が送信index.phpされ、かなりひどく混乱します。

ただし、通常、これは1つの宣言で記述されます。あなたは条件を否定することができます、そしてそれから政治家[OR]も連れ出されることができます:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /vote/public/index.php [NC,L]

これは、元のステートメントと同等です。

于 2010-01-15T20:24:26.747 に答える
0

これらは主に、要求されたファイル(またはディレクトリまたはシンボリックリンク)がディスク上に存在するかどうかをチェックする標準的な書き換えです。この場合、ファイル/ディレクトリなどです。使用すべきです。

他のすべての一致は/votes/public/index.phpに移動する必要があります

于 2010-01-15T20:23:44.397 に答える
0

-s最初のルールは、サイズがゼロ( )より大きい通常のファイル、シンボリックリンク(-l)、またはディレクトリ( )にマップできるすべてのリクエストを通過させます-d。他のすべてのリクエストは2番目のルールによってフェッチされ、/vote/public/index.phpに書き換えられます。

于 2010-01-15T20:23:49.880 に答える