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]
什么是要实现这样的事情最好的做法?推荐,我应该知道的事情?有没有办法避免子请求,或者至少加快速度?
谢谢
您可以使用RewriteMap
到REQUEST_URI
传递到PHP文件,它返回的结果 - 我认为这将有RewriteCond
工作,虽然你可能会发现它的作品更好,因为一个标准的RewriteRule
该规范是在http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html#RewriteMap
基本上,你的PHP文件需要从PHP读取://标准输入和输出结果到stdout
抱歉,我不能提供更多帮助,这不是我长久以来所做的事情!
好的,谢谢,我一定会尝试。我可能甚至不使用PHP文件来返回结果,但可能是一个简单的shell脚本或命令,然后它不太平台独立... 无论如何感谢您的答案 – jfoucher 2010-01-26 06:00:20
我会缩短文字'smallurl'第一个;) – Franz 2010-01-24 18:05:52
是的,但是整点就是它没有出现在URL – jfoucher 2010-01-24 20:03:29
对。我很愚蠢,对不起。应该更仔细地阅读代码;) – Franz 2010-01-24 21:51:48