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 - 它显示目录列表)

这是我的指令:

  • 重写引擎开启
  • RewriteCond %{REQUEST_FILENAME} !-f [NC,OR]
  • RewriteCond %{REQUEST_FILENAME} !-d [NC]
  • 重写规则。/phpDir/myScript.php [L]

RewriteRule 和 RewriteCond 看起来像什么让每个/任何 Web 文档都可以唤起 myScript.php?

谢谢。

4

2 回答 2

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]

最后一条规则检查请求的文件是否具有文件扩展名之一(在本例.php中为.htm.html),如果是,则将其传递给中央 PHP 脚本。这将留下其他文件,例如图形、CSS 和其他媒体。

于 2009-11-24T02:36:25.333 回答
0

通过持续搜索和测试找到它:

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

于 2009-11-23T20:22:26.177 回答