1

サーバーで要求されたすべてのWebドキュメントに対して中央のPHPスクリプトを呼び出すための書き換えルールと条件が必要です。追加するだけで、CSS、JS、PNG、GIF、JPG、およびその他のメディアなどの要求が行われたときにPHPスクリプトが呼び出されることは望ましくありません。スクリプトがHTM、HTML、およびPHPドキュメントに対してのみ呼び出されるようにします。ルートおよび任意のディレクトリまたはサブディレクトリ。

私が抱えている主な障害は、想定されているディレクトリインデックスのいずれに対してもスクリプトを呼び出せないことです。これが私が得ているものです:

  • http://sampleDomain.com/test/index.html(RewriteRuleに従い、myScript.phpを呼び出します)
  • sampleDomain.com/test/test.html(RewriteRuleに従い、myScript.phpを呼び出します)
  • sampleDomain.com/test/(RewriteRuleに準拠していません-ディレクトリリストを表示します)
  • sampleDomain.com/test(RewriteRuleに準拠していません-ディレクトリリストを表示します)

これが私の指示です:

  • RewriteEngineオン
  • RewriteCond%{REQUEST_FILENAME}!-f [NC、OR]
  • RewriteCond%{REQUEST_FILENAME}!-d [NC]
  • RewriteRule。/phpDir/myScript.php [L]

RewriteRuleとRewriteCondは、myScript.phpを呼び出すすべての/すべてのWebドキュメントを取得するためにどのように見えますか?

ありがとう。

4

2 に答える 2

0

永続的な検索とテストを通じてそれを見つけました:

RewriteRule上の
RewriteEngine^(。*)$ /phpDir/myScript.php [L]

于 2009-11-23T20:22:26.177 に答える
0

サイズについてはこれを試してください:

DirectoryIndex /phpDir/myScript.php

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !phpDir/myScript.php [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)\.(php|html|htm)$ /phpDir/myScript.php [L]

それを分解する

DirectoryIndex /phpDir/myScript.php

デフォルトのディレクトリファイルをスクリプトのディレクトリファイルに設定します。したがって、インデックスファイルがないフォルダに入る場合は、/phpDir/myScript.php

RewriteCond %{REQUEST_FILENAME} !phpDir/myScript.php [NC]

中央のPHPスクリプトを要求していないことを確認します。そうしないと、終わりのないループに陥る可能性があります。

RewriteCond %{REQUEST_FILENAME} !-f

要求しているファイルがまだ既存のファイルではないことを確認してください。すべてを中央のスクリプトにプッシュするのではなく、他のファイルが必要な場合。

RewriteRule ^(.*)\.(php|html|htm)$ /phpDir/myScript.php [L]

この最後のルールは、要求されたファイルがファイル拡張子の1つ(この場合.phpは、.htmまたは.html)であるかどうかを確認し、そうである場合は、中央のPHPスクリプトに渡します。これにより、グラフィック、CSS、その他のメディアなどの他のファイルはそのままになります。

于 2009-11-24T02:36:25.333 に答える