所有Web文档的mod_rewrite规则

时间:2009-11-23 17:22:57

标签: .htaccess mod-rewrite rewrite

我需要重写规则和条件来为我服务器上请求的每个和任何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 On
  • RewriteCond%{REQUEST_FILENAME}!-f [NC,OR]
  • RewriteCond%{REQUEST_FILENAME}!-d [NC]
  • RewriteRule。 /phpDir/myScript.php [L]

RewriteRule和RewriteCond是什么让每个/任何web文档都能唤起myScript.php?

感谢。

2 个答案:

答案 0 :(得分:0)

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

重写发动机 RewriteRule ^(。*)$ /phpDir/myScript.php [L]

答案 1 :(得分: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和其他媒体。