Apache重写规则类似于Nginx的try_files

在Nginx中,我使用了try_files,它基本上接受了域上文件的任何请求,并通过名为file_parse.php的自定义php脚本传递。 在Nginx中看起来像这样:try_files $ url /file_parse.php

如果该文件确实存在于文档根目录中,则不使用try_files。 Nginx的这个规则不会redirect用户,例如,如果用户inputhttp://www.domain.com/123456.html地址显示在浏览器中,但是file_parse.php需要123456.html和echo的输出html代码根据数字(123456)。 如果file_parse.php没有任何东西可以回显,那么file_parse.php会为客户端设置一个404头。

在Apache中是否存在这样的事情?

找到了答案,似乎工作,在error.log没有错误:

<Directory /this/is/the/directory/> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . file_parse.php [L] </Directory> 

像Apache这样的东西存在吗?

看一下mod_rewrite的RewriteMap指令,特别是prg map类型,它允许你运行脚本并传递请求信息。