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