Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 所有web文档的mod_重写规则_.htaccess_Mod Rewrite_Rewrite - Fatal编程技术网

.htaccess 所有web文档的mod_重写规则

.htaccess 所有web文档的mod_重写规则,.htaccess,mod-rewrite,rewrite,.htaccess,Mod Rewrite,Rewrite,我需要重写规则和条件,以便为服务器上请求的所有web文档调用一个中心PHP脚本。只是补充一下,我不希望在请求CSS、JS、PNG、GIF、JPG和其他媒体等时调用PHP脚本。我只希望在根目录和任何目录或子目录中调用HTM、HTML和PHP文档的脚本 我遇到的主要障碍是无法为任何假定的目录索引调用脚本。以下是我得到的: (遵循重写规则并调用myScript.php) sampleDomain.com/test/test.html(遵循重写规则并调用myScript.php) sampleDoma

我需要重写规则和条件,以便为服务器上请求的所有web文档调用一个中心PHP脚本。只是补充一下,我不希望在请求CSS、JS、PNG、GIF、JPG和其他媒体等时调用PHP脚本。我只希望在根目录和任何目录或子目录中调用HTM、HTML和PHP文档的脚本

我遇到的主要障碍是无法为任何假定的目录索引调用脚本。以下是我得到的:

  • (遵循重写规则并调用myScript.php)
  • sampleDomain.com/test/test.html(遵循重写规则并调用myScript.php)
  • sampleDomain.com/test/(不遵循重写规则-它显示目录列表)
  • sampleDomain.com/test(不遵循重写规则-它显示目录列表)
以下是我的指示:

  • 重新启动发动机
  • 重写cond%{REQUEST_FILENAME}-f[NC,或]
  • 重写cond%{REQUEST_FILENAME}-d[NC]
  • 重写规则/phpDir/myScript.php[L]
RewriteRule和RewriteCond是什么样子的,可以让每个/任何web文档都调用myScript.php


谢谢。

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

重新启动引擎
RewriteRule^(.*)$/phpDir/myScript.php[L]

请尝试此选项以获得大小:

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]
分解它 将默认目录文件设置为脚本的目录文件。因此,如果您输入的文件夹没有索引文件,请使用
/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和其他媒体。

感谢“身份危机”。我在服务器上的一个目录中的.htaccess文件中尝试了它,它成功了。在将其放入httpd.conf文件并在整个服务器上进行尝试之前,我需要在服务器范围内进行一些清理,但需要了解解决方案和您的逐步解释——这确实很有帮助。仅供参考…我确实收到了一条警告消息,但是:[11月24日星期二07:50:10 2009][warn]不支持非正则表达式模式“-f”的重写条件:NoCase选项,将被忽略。因此,我正在从被引用的重写条件行中删除[NC]选项。谢谢,我完全没有注意到错误日志中关于NC的警告。编辑以清除/清除。
RewriteRule ^(.*)\.(php|html|htm)$ /phpDir/myScript.php [L]