Apache使用mod_重写检测重定向

Apache使用mod_重写检测重定向,apache,mod-rewrite,Apache,Mod Rewrite,在vhost.conf文件中,我将所有请求重定向到自定义位置: RewriteRule ^/(.*) http://www\.tokk\.sk/$1 [L,R=302] 我正在使用自定义错误文档: ErrorDocument 302 /redirect.py 我必须添加以下规则以从实际重定向中排除redirect.py: RewriteCond %{REQUEST_URI} ^/redirect\.py$ RewriteRule ^ - [L] 现在用户可以从浏览器直接访问此

在vhost.conf文件中,我将所有请求重定向到自定义位置:

RewriteRule ^/(.*) http://www\.tokk\.sk/$1    [L,R=302]
我正在使用自定义错误文档:

ErrorDocument 302 /redirect.py
我必须添加以下规则以从实际重定向中排除redirect.py:

RewriteCond %{REQUEST_URI} ^/redirect\.py$
RewriteRule ^  -    [L]
现在用户可以从浏览器直接访问此文件(redirect.py)。但是我希望所有的请求都被重定向。因此,此类用户对redirect.py的访问也应重定向:)

所以在上面的规则中,我尝试添加如下内容

RewriteCond %{REDIRECT_STATUS}  ^302$

但它不起作用。我是否可以检测到,处理请求不是来自用户,而是由RewriteRule生成的?

问题已在redirect.py脚本中解决。
当点击
RewriteCond%{REQUEST\u URI}^/redirect\.py$
时,在我的CGI脚本环境中设置变量redirect\u STATUS。因此,当未设置变量时,请求直接来自用户。然后通过脚本完成重定向。

问题在redirect.py脚本中解决。
当点击
RewriteCond%{REQUEST\u URI}^/redirect\.py$
时,在我的CGI脚本环境中设置变量redirect\u STATUS。因此,当未设置变量时,请求直接来自用户。然后通过脚本完成重定向。

从Apache 2.3开始,应该有flag END,这可能会解决此问题:从Apache 2.3开始,应该有flag END,这可能会解决此问题: