如何使用模式foo拒绝直接访问url,其中referrer不是apache mod rewrite(或nginx)的网站服务器。
我有以下apache mod rewrite(同样也是nginx):
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.com [NC]
RewriteRule (foo/)$ http://example.com [L]
# nginx configuration
location / {
if ($http_referer !~ "^http://(www\.)?example\.com"){
rewrite (foo/)$ http://example.com redirect;
}
}
这允许内部脚本使用模式foo访问url,但不能直接通过浏览器访问。这就是想要的。但是如果用户点击外部的链接,即使它没有模式foo,用户也会收到404错误。我怎样才能完成以下逻辑:
if (pattern == foo and referrer != example) then redirect to example.com
感谢。