Apache使用mod_rewrite检测重定向

时间:2015-12-10 17:55:09

标签: 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]

现在用户可以直接从他的浏览器访问此文件(redirect.py)。但是我想要重定向所有请求。因此,应该重定向此redirect.py的用户访问权限:)

所以在上面的规则中,我尝试添加类似

的内容
RewriteCond %{REDIRECT_STATUS}  ^302$

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

1 个答案:

答案 0 :(得分:0)

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