Apache RewriteCond来自php请求的结果

时间:2010-01-24 15:59:16

标签: php apache .htaccess

我想在我的htaccess中添加一个重写条件,如果调用php文件返回“true”则返回true,否则返回false。我在我的RewriteCond中使用-U开关来运行子请求,如果条件不满足,PHP脚本会返回404错误,触发rewriteCond。

我的目标是与PHP网站并行运行URL缩短服务。

这是我目前的.htaccess

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond /smallurl/%{REQUEST_URI} !-U
RewriteRule (.*) index.php/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) smallurl/$1 [L]

实现这样的目标的最佳做法是什么? Recomendations,我应该注意的事情?有没有办法避免子请求,或至少加快它?

谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用RewriteMapREQUEST_URI传递给php文件,该文件会返回结果 - 我认为这可以与RewriteCond一起使用,但您可能会发现它效果更好标准RewriteRule

规格为http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html#RewriteMap

基本上,你的php文件需要从php:// stdin读取并输出结果到stdout

抱歉,我不能提供更多帮助,这不是我长期以来所做的事情!