Apache RewriteCond来自PHP请求的结果

问题描述:

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

我的目标是与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] 

什么是要实现这样的事情最好的做法?推荐,我应该知道的事情?有没有办法避免子请求,或者至少加快速度?

谢谢

+0

我会缩短文字'smallurl'第一个;) – Franz 2010-01-24 18:05:52

+0

是的,但是整点就是它没有出现在URL – jfoucher 2010-01-24 20:03:29

+0

对。我很愚蠢,对不起。应该更仔细地阅读代码;) – Franz 2010-01-24 21:51:48

您可以使用RewriteMapREQUEST_URI传递到PHP文件,它返回的结果 - 我认为这将有RewriteCond工作,虽然你可能会发现它的作品更好,因为一个标准的RewriteRule

该规范是在http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html#RewriteMap

基本上,你的PHP文件需要从PHP读取://标准输入和输出结果到stdout

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

+0

好的,谢谢,我一定会尝试。我可能甚至不使用PHP文件来返回结果,但可能是一个简单的shell脚本或命令,然后它不太平*立... 无论如何感谢您的答案 – jfoucher 2010-01-26 06:00:20